2017-09-27 39 views
1

有点难以解释....我试图获得这个重复div的属性。下面的代码..获取多个数据属性

<div class="hidden-data"> 
    <div class="menu-data" data-title="About"></div> 
    <div class="menu-data" data-title="Team"></div> 
    ETC/ETC/ETC 
</div> 

现在我打电话......

var data = $(".menu-data").attr("data-title"); 

,并只获得第一位的, '关于'。我想找到一种方法将每个'data-title'属性传递给数组。

想法?我有点难倒在这里,也有困难谷歌搜索这一个..

谢谢!

+0

你怎么想的那些属性将返回逗号分隔的? – Rex

+0

希望我可以让他们进入数组。 –

回答

1

jQuery的

var array = []; 
$(".menu-data").each(function() { 
    array.push($(this).attr("data-title")); 
}); 

Js Fiddle

+0

你这个人,雷克斯!谢谢。得更多地锻炼我的推肌! –

+0

谢谢,请接受这个答案。 – Rex

0

这是因为当你调用数据的方法jQuery对象上,它返回的数据在节点列表的第一个元素。要获取所有div的数据,您必须使用$.each方法遍历元素,或者使用映射来检索列表中的属性。

0

可以使用eq获得平等的,你需要或使用each让每一个

\t var data = $(".menu-data").eq(0).data('title'); 
 
    console.log('eq(0) : ' + data); 
 
    
 
    var data = $(".menu-data").eq(1).data('title'); 
 
\t console.log('eq(1): ' + data); 
 
    
 
    $(".menu-data").each(function(){ 
 
    console.log('each: ' + $(this).data('title')); 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hidden-data"> 
 
    <div class="menu-data" data-title="About"></div> 
 
    <div class="menu-data" data-title="Team"></div> 
 
    ETC/ETC/ETC 
 
</div>