3

私は次のコードを持っています

  <div>
 <a href="#" class="clickMe">test</a>
 <ul>
     <li class="action_li">1</li>
     <li class="action_li">2</li>
 </ul></div> <div>
 <a href="#" class="clickMe">test</a>
 <ul>
     <li class="action_li">3</li>
     <li class="action_li">4</li>
 </ul>

クリック<li>したものと同じもので囲まれているものすべてをループしたい<div><a>

$("a.clickMe").live("click", function(eve){
   eve.preventDefault();
   $('.action_li').each(function(index) {
      console.debug(this);
   }); 
});

もちろん、これ<li>で2つではなく、4つすべてが囲まれるので、で始まり、$(this)で終わるものが必要です。.each()

4

4 に答える 4

5

多くの方法、例があります:

   $(this).parent().find("li.action_li").each(function(index) {
      console.debug(this);
   }); 

また:

   $(this).next("ul").children("li.action_li").each(function(index) {
      console.debug(this);
   });

于 2010-06-02T15:38:31.150 に答える
4

これは機能するはずです:

$("a.clickMe").live("click", function(eve){
   eve.preventDefault();
   $('.action_li', $(this).parent()).each(function(index) {
      console.debug(this);
   }); 
});

セレクターの横にある2番目のパラメーターは、検索をDOMツリーの一部のみに制限します。この部分divでは、要素の親である部分に限定しaます。

于 2010-06-02T15:39:36.187 に答える
3

<ul>の兄弟である要素を取得してから<a>、その子を取得する必要があります。

例えば:

$(this).siblings('ul').children('li.action_li').each(function(index) {
    //...
});

$(this).next()またはに電話することもできます$(this).nextAll('ul')

于 2010-06-02T15:38:19.340 に答える
0

これはうまくいくかもしれません:

$(this).parents('div').find('li').each(...
于 2010-06-02T15:39:57.477 に答える