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

Posted

技术标签:

【中文标题】如何在jQuery中的复选框数组上设置监听器?【英文标题】:How to set a listener on array of checkboxes in jQuery? 【发布时间】:2019-10-28 19:33:12 【问题描述】:

情况:

尝试用这个“收集”所有复选框:

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)

这是获取“控制台记录”的整个文档,我只需要选中的复选框。

【问题讨论】:

jQuery 有.not() Method,但也有(特别是Sizzle engine):not Selector 【参考方案1】:

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

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

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

【讨论】:

以上是关于如何在jQuery中的复选框数组上设置监听器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 通过 Ajax 发送复选框数组的值?

如何在 JQuery 中添加和删除数组而不重新索引数组键

如何使用 jquery 获取选中复选框数组的长度?

如何使用 JS 或 jQuery 从组复选框名称数组中检索引用

使用jquery检查复选框时如何制作键值对数组?

单击复选框时,如何在单个字段上使用 jquery 禁用客户端验证?