2015-02-23 36 views
0

我想在所有頁面的DataTables列表的所有行中選中一個複選框。這是我的代碼:jQuery在每個元素中查找輸入複選框

$('#selectAll').click(function (e) { 
     var p = oTableAPI.rows('tr', { page: 'all', "filter": "applied" }).nodes(); 
     $.each(p, function (i, e) { 
      e.find('input[type = checkbox]').prop('checked', this.checked); 
     }); 
    }); 

在這行我得到Uncaught TypeError: undefined is not a function

e.find('input[type = checkbox]').prop('checked', this.checked); 

我到底做錯了什麼?

回答

2

e是對DOM元素的引用,而不是一個jQuery元件,因此不具有$ .find方法

$(e)使用或$(this)

$(e).find('input[type = checkbox]').prop('checked', this.checked); 

EDIT this.checked指向每個循環中的當前元素。也許節省檢查變量,或使用var self = this;

$('#selectAll').click(function (e) { 
    var checked = this.checked; 
    var p = oTableAPI.rows('tr', { page: 'all', "filter": "applied" }).nodes(); 
    $.each(p, function() { 
     $(this).find('input[type = checkbox]').prop('checked', checked); 
    }); 
}); 
+0

當我CONSOLE.LOG($(E))我得到「[tr.odd,語境:tr.odd,jQuery的: 「2.1.1」,構造函數:函數,選擇器:「」,toArray:function ...]「,這是正確的嗎?該複選框沒有得到檢查,但是... – 2015-02-23 17:04:52

+0

現在運作良好!謝謝! – 2015-02-23 17:08:53

相關問題