如何使用jQuery计算复选框数量?

63

我有大量的复选框,它们可以是选中状态(checked="checked")或者未选中状态。

我想获取所有复选框的数量,包括选中状态和未选中状态的数量。

这里所谓的复选框是指 <input type="checkbox" />

使用 jQuery 如何实现这个功能?

5个回答

179
你可以这样做:
var numberOfChecked = $('input:checkbox:checked').length;
var totalCheckboxes = $('input:checkbox').length;
var numberNotChecked = totalCheckboxes - numberOfChecked;

编辑

甚至更简单

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

19

假设您有一个包含多个复选框的tr行,并且您只想在第一个复选框被选中时计数。

您可以给第一个复选框赋予一个类,以实现这一点

例如 class='mycxk' 然后您可以使用filter进行计数,如下所示

$('.mycxk').filter(':checked').length

我在这种情况下更喜欢这个答案,因为我可以定义 let myCheckboxList = $('.mycxk'); 以便在 myCheckboxList.filter(':checked').length 之后重用它。 - Sadiel
我也喜欢这个答案。 - Alauddin Ahmed
这个答案很好,我想用类计算输入值:)) - Mộc Uyển Thanh

18

以下代码对我起作用了。

$('input[name="chkGender[]"]:checked').length;

6
有多种方法可以实现这个目标: 方法1:
alert($('.checkbox_class_here:checked').size());

方法二:
alert($('input[name=checkbox_name]').attr('checked'));

方法三:

步骤:

alert($(":checkbox:checked").length);

2
您可以通过使用name属性、class、id或通用复选框来实现。如果您想仅计算复选框中已选的数量,可以按如下操作:
通过类名:
var countChk = $('checkbox.myclassboxName:checked').length;

通过name属性:

var countByName= $('checkbox[name=myAllcheckBoxName]:checked').length;

完整代码
$('checkbox.className').blur(function() {
    //count only checked checkbox 
    $('checkbox[name=myAllcheckBoxName]:checked').length;
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接