如何获取页面上所有选中复选框的数量

36

我想要统计用户选择了多少复选框。例如,从一组10个复选框中,如果用户选择了5个,那么我希望能够计数。使用以下代码:

$(":checkbox:checked")

我可以选择所有已选中的复选框,是否有一种方法可以获取通过该语句返回的元素总数?

2个回答

66

使用size()方法或length属性。首选length属性,因为它更快。

示例:

var count = $("[type='checkbox']:checked").length;

1
使用输入前的“:checkbox”,因为如果没有它,它将被评估为“*:checkbox”,这会使执行变慢。 - Siva Sankaran
1
我只是重用了他的示例。我已经更新了它,利用本地DOM方法使用首选选择器,因为:checkbox已被弃用。 - tvanfosson

3

使用jQuery:

var cbs = $("input:checkbox"); //find all checkboxes
var nbCbs = cbs.length; //the number of checkboxes

var checked = $("input[@type=checkbox]:checked"); //find all checked checkboxes + radio buttons
var nbChecked = checked.length;

使用JavaScript:

var inputs = document.getElementsByTagName("input"); //or document.forms[0].elements;
var cbs = []; //will contain all checkboxes
var checked = []; //will contain all checked checkboxes
for (var i = 0; i < inputs.length; i++) {
  if (inputs[i].type == "checkbox") {
    cbs.push(inputs[i]);
    if (inputs[i].checked) {
      checked.push(inputs[i]);
    }
  }
}
var nbCbs = cbs.length; //number of checkboxes
var nbChecked = checked.length; //number of checked checkboxes

来源: 如何查找复选框?在coderanch上


1
我得到了“.size()不是一个函数”的错误 - 改为使用“.length”解决了问题。 - treyBake
@Kenord 不用担心,这种事情经常发生 ^.^ - treyBake

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