所以我尝试读取每个选中复选框的数据值,为此我有以下代码:
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/