jQuery:计数选中复选框 - 错误计数

时间:2013-10-07 14:58:34

标签: javascript jquery

我有一个代码来计算选中的复选框。它在选择时工作正常,但当我取消选择一些已经选中的复选框时,计数会中断(计数加+1)。

HTML:

<div>Number of checkboxes checked: <span id='chck'>0</span></div>
<table>
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr> 
    <tr><td><input type='checkbox' /></td></tr>    
</table>

JS:

$('tr :checkbox').change(function(){

    $('#chck').text($(this).add(':checked').length);

});
  

FIDDLE: http://jsfiddle.net/kAsxj/

4 个答案:

答案 0 :(得分:1)

试试这个

$('#chck').text($('input[type="checkbox"]:checked').length);
    //gets all input checkboxes

或具有输入的特定表格可以执行此操作

$('#chck').text($(this).closest('table').find(':checked').length);
//gets all input checkboxes within the table

DEMO

答案 1 :(得分:1)

http://jsfiddle.net/kAsxj/3/

$(this).add(':checked')只需$(':checked')就足够了,不确定为什么要使用{{1}}。

答案 2 :(得分:1)

当您check或取消选中复选框时,计数不会自动增加,因此您需要:

$('input[type="checkbox"]').change(function(){
    $('#chck').text($('input[type="checkbox"]:checked').length);
}).change();

JS Fiddle demo

答案 3 :(得分:1)

DEMO

   $('tr :checkbox').change(function(){
        $('#chck').text($(':checkbox:checked').length);
    });