有效地检测已检查复选框的数量

时间:2011-08-03 11:59:22

标签: javascript jquery loops checkbox

HIII, 我想检测在给定列表复选框中检查了多少个复选框。 我知道的一种方法是通过循环遍历列表来检查它,如果已选中则逐个检查

$('.chkBoxList').each(function() {
if($(this).is(':checked'))
{
     // do something
}

但我觉得这是一种效率很低的方法。好像有数百/数千个复选框,只检查了其中几个,它仍然会遍历所有复选框。

还有其他方法可以改善它。如果有人能提出有效的替代方案,我将不胜感激。请指导我&建议与专业人士合适的解决方案缺点

提前致谢。

2 个答案:

答案 0 :(得分:3)

这将获得具有类chkBoxList的元素内的所有已检查输入(假设没有任何无线电),并且length属性将是它们的计数:

var cnt = $('.chkBoxList input:checked').length;

如果您的复选框有chkBoxList课程,请使用此选项:

var cnt = $('.chkBoxList:checked').length;

答案 1 :(得分:1)

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