javascript - jQuery .data() 函数在选择器定位 1 个元素时起作用,但在定位多个元素并迭代它们时不起作用

标签 javascript jquery

所以我尝试读取每个选中复选框的数据值,为此我有以下代码:

var jobjChk = $("input:checkbox[name=resourceSelect]:checked");
jobjChk.each(function () {
    receivers[receivers.length] = this.data("data-email");
});

现在,当仅选中一个复选框并且我使用 this.data 时,代码将按预期工作。当我使用上面的代码并选择多个复选框时,“我得到对象不支持属性或方法‘数据’”。但两者都应该是 jquery 对象(并且支持 .data())?

最佳答案

你的假设是不正确的。本声明:

But both should be jquery objects (and supporting .data())?

不正确。 .each() 回调中的 this 是实际的 DOM 元素,它不是 jQuery 对象。如果您想使用 jQuery 函数,您需要创建一个包含该单个元素的新 jQuery 对象:

jobjChk.each(function () {
    receivers[receivers.length] = $(this).data("data-email");
});

关于javascript - jQuery .data() 函数在选择器定位 1 个元素时起作用,但在定位多个元素并迭代它们时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22606601/

相关文章:

javascript - 等到功能完成

javascript - 使用 toLocaleString 将日期格式化为 MM/DD/YYYY

javascript - 社交媒体分享按钮

css 的 Jquery 条件语句?

jquery - 如何使我的网站在大屏幕上看起来更好?

jquery - 根据表单字段值(电子邮件地址域)显示特定内容

javascript - jQuery 和 HTML - 点击当前 div 框 id 显示子 dvi 框内容

javascript - dalek 回调或自定义函数

javascript - 当我在表单元素上执行重置方法时,为什么我的隐藏字段没有被重置?

javascript - 使用 jquery 选择上一个元素?