检查是否所有的checkbox被选中

我如何检查是否选中了class="abc"所有checkbox?

每当他们中的一个被选中或未选中,我都需要检查它。 我是否点击或更改?

我认为最简单的方法是检查这种情况:

 $('.abc:checked').length == $('.abc').length 

每次选中一个新的checkbox时都可以这样做:

 $(".abc").change(function(){ if ($('.abc:checked').length == $('.abc').length) { //do something } }); 
 $('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'); } }); 

所有这些都将确保.abccheckbox的总数与.abc:checked的总数匹配.abc:checked

jsfiddle上的代码示例。

 $('.abc[checked!=true]').length == 0 

你的问题的第一部分:

 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)可能会更好。;

search标准是其中之一:

 input[type=checkbox].MyClass:not(:checked) input[type=checkbox].MyClass:checked 

您可能想要连接到更改事件。

另外,你也可以使用every():

 // 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; } });