1

次のような 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 を持つ各要素から data-name 属性を取得する<a>ことです。これにより、配列が生成されます。

items = {"Three","Five"}

新しい問題:

トラバースする属性がThreeであることだけを知っていて、そこから下にトラバースするだけで、 から開始したい場合はどうすればよいでしょうか。data-nameThreeFive

4

3 に答える 3

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'));
});

そして新しいデモ...

于 2012-09-28T15:05:39.763 に答える
1

メソッドを使用できますmap

var items = $('ul a.me').map(function(){
    return this.dataset.name
}).get()

http://jsfiddle.net/ZGMSw/

于 2012-09-28T15:08:36.983 に答える
0
$('a.me').each (function () { alert ( $(this).attr('data-name')); } );
于 2012-09-28T15:09:31.503 に答える