我有一个代码来计算选中的复选框。它在选择时工作正常,但当我取消选择一些已经选中的复选框时,计数会中断(计数加+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/
答案 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
答案 1 :(得分:1)
当$(this).add(':checked')
只需$(':checked')
就足够了,不确定为什么要使用{{1}}。
答案 2 :(得分:1)
当您check
或取消选中复选框时,计数不会自动增加,因此您需要:
$('input[type="checkbox"]').change(function(){
$('#chck').text($('input[type="checkbox"]:checked').length);
}).change();
答案 3 :(得分:1)
$('tr :checkbox').change(function(){
$('#chck').text($(':checkbox:checked').length);
});