2015-04-18 38 views
0

我想我有一个简单的问题,但我的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)')); 
     } 
    }); 

在此先感谢

回答

1

我偏爱这个版本的自己:

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

对于最小化的缘故,我想用这个,但是当全选未选中它取消? – Habitat

+0

这绝对更好。我想用他的代码来说明问题,但这种方式更受欢迎:-) – billynoah

+0

我继续前进,并标记为正确的,谢谢你的帮助@billynoah你的工作也帮助我理解我做错了什么。感谢你们俩。希望我能标记你们两个都对。 – Habitat

1

在我看来就像你不选中代码的值为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); 
    } 
});