2015-04-18 39 views
0

我想我有一個簡單的問題,但我的jQuery是有限的。取消選中隱藏的數據表複選框

我使用這個腳本來檢查所有在我的錶行,其是由數據表處理的複選框(包括延遲渲染隱藏的)

它的工作的檢查部分,但取消選中不工作當我想取消選擇框。我如何調整我必須正確取消選中的框?

繼承人我的代碼:

$('#selectall').on('click', function() { //on click 
     if(this.checked) { // check select status 
      var cells = dTable.cells().nodes(); 
      $(cells).find(':checkbox').prop('checked', $(this).is(':checked')); 
     } else { 
      var cells = dTable.cells().nodes(); 
      $(cells).find(':checkbox').prop('checked', $(this).is(':not(:checked)')); 
     } 
    }); 

在此先感謝

回答

1

我偏愛這個版本的自己:

$('#selectall').on('click', function() { //on click 
    var cells = dTable.cells().nodes(); 
    $(cells).find(':checkbox').prop('checked',this.checked);   
}); 
+0

對於最小化的緣故,我想用這個,但是當全選未選中它取消? – Habitat

+0

這絕對更好。我想用他的代碼來說明問題,但這種方式更受歡迎:-) – billynoah

+0

我繼續前進,並標記爲正確的,謝謝你的幫助@billynoah你的工作也幫助我理解我做錯了什麼。感謝你們倆。希望我能標記你們兩個都對。 – Habitat

1

在我看來就像你不選中代碼的值爲true ..這意味着它會檢查他們。試試這個:

$('#selectall').on('click', function() { //on click 
    if (this.checked) { // check select status 
     var cells = dTable.cells().nodes(); 
     $(cells).find(':checkbox').prop('checked',true); 
    } else { 
     var cells = dTable.cells().nodes(); 
     $(cells).find(':checkbox').prop('checked',false); 
    } 
});