如何检查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()) })