1

次のようなhtmlがあります。

<div class="block">
    <div id="item1"></div>
    <div id="item2"></div>
</div>

<div class="block">
    <div id="item3"></div>
</div>

div に特定の要素が含まれるかどうかを確認しようとしています。各ブロックをループしてから、各アイテムを取得する必要があります。

これまでに得たもの

    $('.block:has(div)').each(function() {
            // do something with the block
    });

アイテムを含むすべてのブロックを返すので、これは素晴らしいことです。しかし、私は次の線に沿って何かが必要です

    $('.block:has(div)').each(function() {
             $('current place in loop' + li).each(function() {
                    // do something with each item element, before the block loop has finished
             });
    });

何か案は?

4

4 に答える 4

3

これを意味することを願っています:

$('.block').each(function(){
    $(this).find('div').each(function(){
        //do your stuff
    });
});
于 2009-05-26T09:22:24.627 に答える
2

ネストされたそれぞれの中にセレクターを構築するか、findを使用します。

 $('.block:has(div)').each(function() {
     $('#' + this.id +  ' li').each(function() {
         //do stuff on list item            
     });
 });

また

 $('.block:has(div)').each(function() {
     $(this).find('li').each(function() {
         //do stuff on list item            
     });
 });
于 2009-05-26T09:29:48.247 に答える
2

これがあなたが求めていることに100%答えているかどうかはわかりませんが、次のようには機能しません。

$('.block:has(div)').each(function() {
  $(this).children('div').each(function() {
    // do something with each item element, before the block loop has finished
  });
});
于 2009-05-26T09:23:41.787 に答える
1

使ってみましたか

$("#" + this)

?
jqueryドキュメントのメインの各例で使用されています(harshathはすでに投稿しています...遅すぎます、sob

于 2009-05-26T09:24:38.430 に答える