jQuery 在每个元素中找到输入复选框

jQuery find input checkbox in element in each

我想 select 在所有页面上的 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);

我做错了什么?

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);
    });
});