为什么在使用Jquery选择对象后,无法访问对象中的.data()或.attr()?
这是问题,我有一组div,分配了一个特定的类。我想使用Jquery选择所有div并将它们分配给一个数组,然后解析数组并查看每个数据属性以查找某些值。
<div class="Divs" data-eventid="1"></div>
<div class="Divs" data-eventid="2"></div>
<div class="Divs" data-eventid="3"></div>
以下获取与选择器匹配的元素列表并将它们分配给事件。
var events = [];
$('.Divs').each(function () {
events.push($(this));
});
出于解释原因,出现了变量{n1,n2,n3}
$.each(events, function(idx, val){
var n1 = events[idx];
var n2 = n1[0];
var n3 = n2.data(); // **.data() is Undefined
});
当我尝试解析数组并说不支持/ undefined .data()或.attr()时?
但如果我做以下工作就可以了。
$('.Divs').each(function () {
var getIdValue = $(this).attr('eventid'); // Works;
var getIdValue2 = $(this.data('eventid'); // works;
)};
只是想知道为什么一个有效而另一个没有。
答案 0 :(得分:0)
检查一下:
应该是:var n3 = $(n2).data();
这是因为,n2
是指div
。您需要使用jQuery引用来获取其data()
。
检查控制台,当你运行小提琴时......你会得到更多的想法。