Відповіді:
Я думаю, що найпростішим способом є перевірка цього стану:
$('.abc:checked').length == $('.abc').length
Ви можете це робити щоразу, коли буде встановлено новий прапорець:
$(".abc").change(function(){
if ($('.abc:checked').length == $('.abc').length) {
//do something
}
});
length, але я ніколи не забуваю забути, що це властивість, а не метод. Виправлено
$('input.abc').not(':checked').length > 0
$('input.abc').not(':checked').length === 0.
Можна використовувати change()
$("input[type='checkbox'].abc").change(function(){
var a = $("input[type='checkbox'].abc");
if(a.length == a.filter(":checked").length){
alert('all checked');
}
});
Все, що потрібно зробити, - це перевірити, чи загальна кількість .abcпрапорців відповідає загальній кількості .abc:checked.
Приклад коду на jsfiddle .
filterхороше рішення для групи прапорців, велике спасибі.
Частина 1 вашого запитання:
var allChecked = true;
$("input.abc").each(function(index, element){
if(!element.checked){
allChecked = false;
return false;
}
});
Редагувати:
Відповідь (http://stackoverflow.com/questions/5541387/check-if-all-checkboxes-are-selected/5541480#5541480) вище, ймовірно, краща.
Критерії пошуку є одним із таких:
input[type=checkbox].MyClass:not(:checked)
input[type=checkbox].MyClass:checked
Можливо, ви хочете підключитися до події зміни.
Крім того, ви могли також використовувати кожен ():
// Cache DOM Lookup
var abc = $(".abc");
// On Click
abc.on("click",function(){
// Check if all items in list are selected
if(abc.toArray().every(areSelected)){
//do something
}
function areSelected(element, index, array){
return array[index].checked;
}
});
Ось як я цього досяг у своєму коді:
if($('.citiescheckbox:checked').length == $('.citiescheckbox').length){
$('.citycontainer').hide();
}else{
$('.citycontainer').show();
}
lengthце не фунсіон, я думаю, ви мали на увазі ..size()