如何检查jquery数据表中的每个复选框?

我在第一列中有一个带有复选框的表。 我使用jQuery DataTable插件显示我的表。

我做了2个链接来选择/取消选中每个复选框。 这是选择全部的:

Select all 

和javascript:

 function checkAll(field, event) { event.preventDefault(); for (i = 0; i < field.length; i++) field[i].checked = true ; return false; } 

但是数据表允许分页,我的函数只选择可见的复选框,而不选择其他页面的复选框。 如何选择数据表中的每个复选框?

方案:

好的,我用fnGetNodes做了这个,谢谢amccausl!

 $("a[name='CheckAll']").click(function(event) { event.preventDefault(); var nodes = datatable.fnGetNodes( ); $('.email_checkbox', nodes).attr("checked", "checked"); }); 

您可以使用fnGetNodes来获取所需的所有节点,而不是getElementsByClassName。

您还应该使用jquery.click()事件而不是自己定义onClick

对不起,我的代码错了:

动态复选框

 return ''; 

链接

 seleccionar todos 

名称表:

 

和代码

 $(document).ready(function() { $("a[name='CheckAll']").click(function(event) { event.preventDefault(); var nodes = $('#example').fnGetNodes( ); $('.email_checkbox', nodes).attr("checked", "checked"); } ); 
 $(document).ready(function() { $(".checkall").click(function(event) { event.preventDefault(); var oTable = $('#example').dataTable(); var nNodes = oTable.fnGetNodes(); $email_box=$('.email_checkbox',nNodes); if($email_box.attr("checked")=="checked"){ $email_box.removeAttr("checked"); $(".checkall").text("Check all"); } else{ $email_box.attr("checked", "checked"); $(".checkall").text("Uncheck all"); } }); 

这是我的解决方案(DataTables1.9.4):

 var nodes = $('#listContainer').DataTable().column(0).nodes(); $(':checked', nodes).each(function (index) { console.log($(this).text()) })