2012-01-16 20 views
2

我有一个表格,第一列有复选框。我使用jQuery DataTable插件显示我的表格。如何检查jQuery数据表中的每个复选框?

我做了2个链接来选择/取消选择每个复选框。这里的一个选择所有:

<a href="" name="CheckAll" onClick="checkAll(document.email_list_form_inviter.getElementsByClassName(\'email_checkbox\'), event)" >Select all</a> 

和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"); 
    }); 

回答

1

您可以使用fnGetNodes抢你所需要的所有节点,而不是getElementsByClassName方法。

你应该也可以使用jquery.click()事件,而不是确定一个onClick自己

0

对不起,我的代码是错误的:

动态复选框

return '<input type="checkbox" id="email_checkbox" name="email_checkbox" />'; 

链接

<a href="" name="CheckAll" id="CheckAll">seleccionar todos</a> 

名称表:

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" width="100%"> 

和代码

$(document).ready(function() { 
$("a[name='CheckAll']").click(function(event) { 
       event.preventDefault(); 
       var nodes = $('#example').fnGetNodes(); 
       $('.email_checkbox', nodes).attr("checked", "checked"); 
}); 
0
$(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"); 
      } 
}); 
0

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

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

请添加一些说明你的代码。 – 2015-01-29 11:06:10

+0

代码的第一行是获取包括复选框在内的所有节点的实例,所以我们可以通过使用jQuery来获得所有的复选框。 – bill 2015-03-06 02:40:35

相关问题