Переключение чекбоксов с помощью jQuery

На днях мне нужно было написать небольшую JavaScript функцию (на jQuery), которая переключала бы группу чекбоксов. Т.е. все отмеченные чекбоксы должны были стать неотмеченными и наоборот.
Кстати, это довольно широкораспространенная задача.
Количество чекбоксов изменялось динамически и некоторые из них могли быть не активными (их трогать нельзя).
Вобщем, уложился я в шесть строк (включая объявление функции).
function toggleAll() {
var allCheckboxes = $("#checkboxes input:checkbox:enabled");
var notChecked = allCheckboxes.not(':checked');
allCheckboxes.removeAttr('checked');
notChecked.attr('checked', 'checked');
}
Наверное, код можно еще подсократить, но, честно говоря, думать дальше не хочется
.
Вкратце поясню, как это работает.
Прежде всего, разметка:
Обычная группа чекбоксов, которые находятся внутри тега div. В принципе, разметка большой роли не играет. Главное, чтобы вы могли выбрать необходимые чекбоксы.
Алгоритм работы функции.
1) Находим все активные чекбоксы (input:checkbox:enabled).
2) Из них выбираем не отмеченные (not(':checked')).
3) Снимаем отметку у всех чекбоксов (для этого просто удаляем атрибут checked).
4) Отмечаем те чекбоксы, которые были раньше не отмечены (attr('checked', 'checked')).
Как видите, функция получилась довольно короткая.
Если есть идеи как её сократить, буду рад выслушать
Интересно почитать:
Понравилась статья? Подписывайтесь на продолжение
!
Добавьте эту страницу в
Tweet
Опубликовано в HTML, JavaScript, Web разработка Комментарии (42) »
Вы можете оставить комментарий. Трекбеки закрыты.
-
http://caveman.ru/ Алексей
-
http://www.simplecoding.org/ Владимир
-
http://caveman.ru/ Алексей
-
http://caveman.ru Алексей
-
http://caveman.ru Алексей
-
http://mefolio.ru/ Евгений
-
http://www.simplecoding.org/ Владимир
-
http://mefolio.ru/ Евгений
-
http://www.mysoftexplorer.com/ alex
-
http://www.mysoftexplorer.com alex
-
test
-
test
-
test
-
http://www.simplecoding.org/ Владимир
-
Румата
-
http://www.simplecoding.org/ Владимир
-
Румата
-
http://www.simplecoding.org/ Владимир
-
test
-
Румата
-
Румата
-
axel
-
http://www.simplecoding.org/ Владимир
-
axel
-
Никита
-
http://www.simplecoding.org Владимир
-
ms
-
http://www.simplecoding.org Владимир
-
ms
-
http://www.simplecoding.org Владимир
-
ms
-
Nullweb
-
гость
-
http://www.simplecoding.org Владимир
-
http://twitter.com/vertex432 Alex
-
http://www.simplecoding.org Владимир






