2012-01-16 18 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でこれをやった

[OK]を、あなたはamccauslありがとう!

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

答えて

1

代わりのgetElementsByClassNameのあなたが必要とするすべてのノードを、つかむためにfnGetNodesを使用することができます。

あなたはまた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

してください、あなたのコードにいくつかの説明を追加します。 –

+0

コードの最初の行は、チェックボックスを含むプレラントノードであるすべてのノードインスタンスを取得することです。したがって、jQueryを使用してすべてのチェックボックスを取得できます。 – bill

関連する問題