我有一个类似于以下的ul> li结构:
<ul id="node">
<li><a data-name="One">One</a>
<ul>
<li><a data-name="Two">Two</a></li>
<li><a class="me" data-name="Three">Three</a>
<ul>
<li><a data-name="Four">Four</a></li>
<li><a class="me" data-name="Five">Five</a></li>
</ul>
</li>
</ul>
</li>
</ul>
我需要遍历这个并使用类me从每个<a>
元素中获取data-name属性,这会产生一个数组:
items = {"Three","Five"}
新问题:
如果我想从Three
开始,只知道要遍历的data-name
属性是Three
并且仅从那里向下遍历 - 即结果只是{{} 1}}?
答案 0 :(得分:2)
var items = $('ul#node a.me').map(function(){
return $(this).attr('data-name');
});
或
var items = [];
$('ul#node a.me').each(function(){
items.push($(this).data('name'));
});
新问题:
var items = [];
$('ul#node a[data-name="Three"]').parent().children().find('a.me').each(function(){
items.push($(this).data('name'));
});
the new Demo ......
答案 1 :(得分:1)
您可以使用map
方法。
var items = $('ul a.me').map(function(){
return this.dataset.name
}).get()
答案 2 :(得分:0)
$('a.me').each (function () { alert ( $(this).attr('data-name')); } );