我想在所有页面的DataTables列表中的所有行中选中一个复选框。这是我的代码:
$('#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);
我做错了什么?
答案 0 :(得分:2)
是对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);
});
});