检查是否所有的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'); } });
所有这些都将确保.abc
checkbox的总数与.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; } });
编辑:
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; } });