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

时间:2015-02-23 16:53:44

标签: javascript jquery jquery-datatables

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

我做错了什么?

1 个答案:

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