如何在 jQuery 中的复选框数组上设置监听器?

How to set a listener on array of checkboxes in jQuery?

情况:

尝试 'collect' 所有复选框:

let docChildPermissions = $('input.docPermission').not('.parent');

那行得通。

现在我只想在这些复选框中的任何一个像这样更改时执行操作;

$(document).on('change', $(docChildPermissions), function() {
    console.log($(this));
});

但在控制台中我得到了这个:

init [document, context: document]
0: document
context: document
length: 1
__proto__: Object(0)

这是获得 'console logged' 的整个文档,我只需要选中的复选框。

如果您检查 documentation for on(),您会发现选择器参数必须是一个字符串,而不是示例中的 jQuery 对象。这就是问题的原因。

要解决此问题,请将对象转换为字符串选择器,如下所示:

$(document).on('change', 'input.docPermission:not(.parent)', function() {
  console.log($(this));
});