1

そのため、特定のデータのオブジェクト内の要素をチェックし、必要に応じてそれらを除外する方法を見つけようとしています。

私は単純なリストを持っています。すべてのリスト項目を実行し、それらをオブジェクトに入れています。後で、データ ID の各要素を実行して確認したいと思います。

<ul id="test">
    <li data-id="1">a</li>
    <li>b</li>
    <li>c</li>
    <li>d</li>
    <li>e</li>
    <li>f</li>
    <li>g</li>
    <li>h</li>
    <li data-id="2">i</li>
    <li>j</li>
    <li>k</li>
    <li>l</li>
    <li>m</li>
    <li>n</li>
</ul>`


var holder = {};
i = 0;
$('#test li').each(function(){
    holder[i]=$(this);
    i++
});
$('#test').append(holder[2]);
holder.each(function(){
    console.log($(this).attr('data-id'));

});

賢い人なら、すぐにこれを実行する方法を教えてくれるはずです。それはおそらく骨の折れるほど明らかです!

ヘルプの人たちに乾杯。

4

2 に答える 2

4

オブジェクトを持つjQueryセレクターを使用して要素を選択することにより、追加のオブジェクトを作成する必要はありません。

var $holder = $('#test li');

$holder.each(function(){
     console.log($(this).data('id'));
     // console.log(this.dataset.id);
})

data-id 属性を持つ li 要素を選択する場合は、属性セレクターを使用できます。

var $holder = $('#test li[data-id]');

値を保存するには、次のmapメソッドを使用できます。

var data = $('#test li[data-id]').map(function(){
                return this.dataset.id;
           }).get() // [1, 2]
于 2012-10-02T14:09:13.547 に答える
0

ここには jQuery オブジェクトではなく、項目のリストを含む単純な配列があります。

holder.each(function(){
    console.log($(this).attr('data-id'));

});

そのような配列のアイテムをループしたい場合は、次を使用する必要があります。

$.each(holder, function(){
    console.log($(this).attr('data-id'));

});​

しかし、あなたのコードからはそれは必要ありません。あなたは以下のようなことをするかもしれません:

$('#test li').each(function(){
    console.log($(this).attr('data-id'));
});
$('#test').append($('#test li').eq(2));
于 2012-10-02T14:13:33.107 に答える