Jquery 如何通过选中一个复选框来选中所有复选框?

Jquery 如何通过选中一个复选框来选中所有复选框?,jquery,Jquery,当选中“selectall”复选框时,我尝试选中所有复选框 我尝试了一些代码让它工作,但仍然不为我工作 当我点击主复选框时,什么都没有发生 以下是我到目前为止所做的 <script> $(document).ready(function() { if( $('#selectall').is(':checked') ){ $.each($('input[name=activitie]'){ $('input[type=check

当选中“selectall”复选框时,我尝试选中所有复选框

我尝试了一些代码让它工作,但仍然不为我工作

当我点击主复选框时,什么都没有发生

以下是我到目前为止所做的

<script>

$(document).ready(function() {
    if(   $('#selectall').is(':checked')  ){

        $.each($('input[name=activitie]'){
            $('input[type=checkbox]').prop('checked', true)
        }

    }
});

</script>

$(文档).ready(函数(){
如果($('#selectall')。是(':checked')){
$。每个($('input[name=activitie]')){
$('input[type=checkbox]')。prop('checked',true)
}
}
});
无耻的自我推销:。在你的情况下,我认为这会奏效:

$(function () {
    $('#selectall').checkAll('input[type="checkbox"]');
});

但是,在没有看到一些标记的情况下,我无法确定……

当id为“selectall”的复选框的状态发生更改时,您需要检测一些东西,然后确定是否正在检查它。我已更新了您的代码并修复了一些其他错误:

$(document).ready(function () {
    $("#selectall").click(function () {
        if ($("#selectall").is(":checked")) {
            $.each($('input[name=activitie]'), function () {
                $('input[type=checkbox]').prop('checked', true);
            });
        }
    });
});
此外,如果您希望在取消选中“selectall”时将它们全部取消选中,您可以使用相同的
$添加一个else子句。每个
都只需使用
.prop
将复选框设置为未选中或false。使用某种插件可能有一种更简单的方法来实现这一点,但我怀疑这会有所帮助


我已经准备了一个可以帮助演示的程序。

如上所述,
if($('selectall').is(':checked'))
测试元素的初始状态。当用户更改元素的状态时,您需要附加一个
change
处理程序来应用测试(和相关代码)。@beetrootbeetroot正确,您可以使用。@click()“然后测试状态,我在回答中就是这么做的。
$(document).ready(function() {
    $("#selectall").on("change", function(e) {
        e.preventDefault();
        $("input[type=checkbox][name=activitie]").prop("checked", $(this).prop("checked"));
    });
});