jquery自动检查同一个表中的复选框

标签 jquery

我有这个代码:

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);
});

Example fiddle

关于jquery自动检查同一个表中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973885/

相关文章:

javascript - 转义来自 JSON 的引号

jquery - 使用 jQuery 存储复杂表单的状态

jquery - 使用 jQuery 通过输入添加新的评级元素

jquery - db查询时如何处理随机字母大小写实例?

jquery - 单击时如何更改图像?

javascript - jquery单滑动 handle

jquery - 使用 jquery ajax 调用 jsf 托管 bean 方法(AjaxBehaviorEvent 监听器处理程序)

javascript - 如何通过 ajax/php 在选项卡之间切换内容?

javascript - 如何动态添加 HTML5 视频控件

javascript - 如何使代码中高度的像素值动态化?