Jquery数组和数据属性

时间:2015-04-23 14:32:39

标签: jquery custom-data-attribute

为什么在使用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; 
)};

只是想知道为什么一个有效而另一个没有。

1 个答案:

答案 0 :(得分:0)

检查一下:

http://jsfiddle.net/brvk9q3p/

应该是:var n3 = $(n2).data();

这是因为,n2是指div。您需要使用jQuery引用来获取其data()

检查控制台,当你运行小提琴时......你会得到更多的想法。