2012-01-16 112 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

相關問題