如何在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 发送复选框数组的值?