我有这个代码:
HTML
<table class=tbl>
<tr>
<td>
<input class='c1' type='checkbox'>
<label>Ceckbox1</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
</tr>
</table>
<table class=tbl>
<tr>
<td>
<input class='c1' type='checkbox'>
<label>Ceckbox1</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
<td>
<input class='c2' type='checkbox'>
<label>Ceckbox2</label>
</td>
</tr>
</table>
JavaScript
$('.c2').click(function () {
if ($(this).parent().find('.c2').is(':checked')) {
alert('all are checked');
} else {
alert('none are checked');
}
});
我尝试仅在检查同一“tbl”中的所有“c2”时才使用jquery自动检查“c1”,但没有结果。 “c2”的计数可以变化,“tbl”的计数也可以变化。
最佳答案
您可以通过将同一父 tr
内的复选框总数与选中框的数量进行比较来查看是否所有复选框均已选中。试试这个:
$('.c2').change(function () {
var $parent = $(this).closest('tr');
var allChecked = $('.c2', $parent).length === $('.c2:checked', $parent).length;
$('.c1', $parent).prop('checked', allChecked);
});
关于jquery自动检查同一个表中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973885/