javascript - jquery 设置所有复选框被选中

标签 javascript jquery checkbox

我正在使用 jquery 1.11.1,这是我的代码:

$("#rowchkall").change(function(){
    if($(this).is(':checked')){
        $("input:checkbox[class=rowchk]").each(function() {
            alert("set checked");
            $(this).attr('checked', "checked");
        });
    }else{
        $("input:checkbox[class=rowchk]").each(function() {
            $(this).attr('checked', false);
        });
    } 
});

当我第一次点击 #rowchkall 时,所有复选框都设置为已选中。当我再次单击它时,所有复选框都未选中。

当我再次点击它时,仍然会出现警告框,但不会选中任何复选框。为什么它只适用于第一次?我该如何解决?

谢谢。

最佳答案

使用.prop()而不是 .attr()

$(this).prop('checked', true); //true to check else false uncheck

您的代码可以简化为

$("#rowchkall").change(function () {
    $("input:checkbox.rowchk").prop('checked',this.checked);
});

一本好书 .prop() vs .attr()

关于javascript - jquery 设置所有复选框被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774029/

相关文章:

c# - IValueConverter 的绑定(bind)值重置为默认值

javascript - jQuery UI 可排序 : how to emulate the 'beforeStart' event?

javascript - 如何临时设置所有元素的 tabindex 属性并能够将所有元素重置为其原始 tabindex?

javascript - tr 的parentNode 未定义

jquery - 如何将标签添加到 Bootstrap 对话框页脚

javascript - 检查复选框是否被选中,返回 addEventListener 不是一个函数

excel - 为什么分组 ActiveX 复选框会改变 OLEObject 可见性

Javascript:将字典添加到列表中

javascript - 在脚本中使用脚本标签会破坏脚本

javascript - 使用 jQuery/Ajax 通过下拉菜单过滤 PHP SELECT 查询