<div>
        <input type='checkbox' class='checkall'>二级
    </div>
    <div>
        <input type='checkbox' class='j-checkbox'>三级
        <input type='checkbox' class='j-checkbox'>三级
    </div>
    <div>
        <input type='checkbox' class='checkall'>二级
    </div>
    <div>
        <input type='checkbox' class='j-checkbox'>三级
        <input type='checkbox' class='j-checkbox'>三级
    </div>
    <div>
        <input type='checkbox' class='checkall'>二级
    </div>
    <div>
        <input type='checkbox' class='j-checkbox'>三级
        <input type='checkbox' class='j-checkbox'>三级
    </div>
    <input type='checkbox' class='checkalls'>一级
</body>
</html>
<script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js'></script>
<script>
    // 二级选择框绑定change事件
    $('.checkall').change(function () {
        // 获取当前二级选择框对应的三级选择框
        var checkboxes = $(this).parent().nextAll().find('.j-checkbox');
        // 如果当前二级选择框被选中,将对应的三级选择框全部选中
        if ($(this).prop('checked')) {
            checkboxes.prop('checked', true);
        } else {
            // 否则将对应的三级选择框全部取消选中
            checkboxes.prop('checked', false);
        }
        // 触发一级选择框的change事件
        $('.checkalls').trigger('change');
    });
<pre><code>// 三级选择框绑定change事件
$('.j-checkbox').change(function () {
    // 获取当前三级选择框所在的二级选择框
    var parent = $(this).parent().prev();
    // 获取当前二级选择框对应的所有三级选择框
    var checkboxes = parent.next().find('.j-checkbox');
    // 获取被选中的三级选择框的数量
    var checkedNum = checkboxes.filter(':checked').length;
    // 如果被选中的三级选择框的数量为2,将对应的二级选择框选中
    if (checkedNum == 2) {
        parent.prop('checked', true);
    } else {
        // 否则将对应的二级选择框取消选中
        parent.prop('checked', false);
    }
    // 触发一级选择框的change事件
    $('.checkalls').trigger('change');
});

// 一级选择框绑定change事件
$('.checkalls').change(function () {
    // 获取所有二级选择框的数量
    var len = $('.checkall').length;
    // 获取被选中的二级选择框的数量
    var checkedLen = $('.checkall:checked').length;
    // 如果被选中的二级选择框的数量等于所有二级选择框的数量,将对应的一级选择框选中
    if (checkedLen == len) {
        $(this).prop('checked', true);
    } else {
        // 否则将对应的一级选择框取消选中
        $(this).prop('checked', false);
    }
});
</code></pre>
</script>
jQuery 实现多级复选框联动:二级自动选中、一级全选

原文地址: http://www.cveoy.top/t/topic/nwSX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录