【问题标题】:Deselecting datatables hidden checkbox取消选择隐藏的数据表复选框
【发布时间】:2015-04-18 03:31:32
【问题描述】:

我想我有一个简单的问题,但我的 jquery 有点有限。

我正在使用此脚本检查表格行中由数据表处理的所有复选框(包括延迟渲染中的隐藏复选框)

它适用于检查部分,但当我想取消选中这些框时,取消选中不起作用。如何调整我必须正确取消选中这些框?

这是我的代码:

$('#selectall').on('click', function() {  //on click 
        if(this.checked) { // check select status
            var cells = dTable.cells( ).nodes();
            $( cells ).find(':checkbox').prop('checked', $(this).is(':checked')); 
        } else {
            var cells = dTable.cells( ).nodes();
            $( cells ).find(':checkbox').prop('checked', $(this).is(':not(:checked)')); 
        }
    });

提前致谢

【问题讨论】:

    标签: javascript jquery checkbox jquery-datatables


    【解决方案1】:

    我自己偏爱这个版本:

    $('#selectall').on('click', function() {  //on click 
        var cells = dTable.cells( ).nodes();
        $( cells ).find(':checkbox').prop('checked',this.checked);         
    });
    

    【讨论】:

    • 为了最小化,我想用这个,但是当未选中 selectall 时它会取消选中吗?
    • 那肯定更好。我想用他的代码来说明问题,但这种方式更受欢迎:-)
    • 我继续并将您标记为正确,感谢@billynoah 的帮助,您的帮助也有效并帮助我了解我做错了什么。感谢你们俩。希望我能把你们都标记为正确的。
    • @Habitat - prop() 的第二个参数设置值。如果$('#selectall') 未选中,则this.checked 的计算结果为false,这意味着该属性将更改为未选中。所以..是的,它应该可以工作。
    【解决方案2】:

    在我看来,您的取消选中代码的计算结果为 true.. 这意味着它将检查它们。试试这个:

    $('#selectall').on('click', function() {  //on click 
        if (this.checked) { // check select status
            var cells = dTable.cells( ).nodes();
            $( cells ).find(':checkbox').prop('checked',true); 
        } else {
            var cells = dTable.cells( ).nodes();
            $( cells ).find(':checkbox').prop('checked',false); 
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 2011-03-18
      相关资源
      最近更新 更多