如何计算使用jQuery在页面上选择了多少个复选框

我想要计算使用jQuery选择我页面上的复选框的数量。 我写了以下代码:

var numberOfCheckboxesSelected = 0; $(':checkbox').each(function(checkbox) { if (checkbox.attr('checked')) numberOfCheckboxesSelected++; }); 

但是,我的代码错误输出第三行的消息“对象不支持此属性或方法”。

如何计算在我的页面上选择了多少个复选框?

jQuery支持:checked伪选择器。

 var n = $("input:checked").length; 

这适用于单选按钮和复选框。 如果您只想要复选框,但页面上也有单选按钮:

 var n = $("input:checkbox:checked").length; 

试试这个(避免计算任何选定的单选按钮):

 var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length; 

传递给each回调的第一个参数是索引,而不是元素。 你应该使用this或第二个参数:

 $(':checkbox').each(function(idx, checkbox) { if (checkbox.attr('checked')) numberOfCheckboxesSelected++; }); 

此外,更简单的方法是使用:checked选择器仅选择已检查的元素,然后检查选择的length属性:

 var numberOfCheckboxesSelected = $('input:checkbox:checked').length; 
 $("input:checked").length 

这将返回已选中复选框的计数。