从get()找到的元素中获取数据属性

时间:2016-03-26 16:54:27

标签: jquery custom-data-attribute

我觉得我完全错过了一些东西,我无法弄清楚是什么。我尝试通过.get()获取通过索引指定的项的数据属性。但是,我似乎无法这样做:

var int = 1,
		selector = $("a");
    
console.log(selector.get(int));
console.log(selector.get(int).data("banana")); // Uncaught TypeError: selector.get(...).data is not a function
console.log(selector.get(int)[0].data("banana")); // Uncaught TypeError: selector.get(...).data is not a function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" data-banana="5">Hello</a>
<a href="#" data-banana="2">there</a>

我在这里缺少什么?为什么会这样?

1 个答案:

答案 0 :(得分:1)

您必须在此背景下使用dataset

console.log(selector.get(int)[0].dataset.banana);

因为node对象在其原型中没有名为data()的方法。那是一个属于jquery对象的函数。

如果你想在这种情况下和jquery一起旅行那么你必须使用.eq()

console.log(selector.eq(0).data("banana"));

基本上.get(1)会从jquery集合中提取第二个元素作为节点对象,而.eq(1)会将第二个元素作为jquery对象提取