JQuery每个循环问题

时间:2010-06-02 15:36:05

标签: javascript jquery each

我有以下代码

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

但当然这会让我得到所有4 <li>而不是两个封闭的$(this) 所以我想要一些以.each()开头并以{{1}}

结尾的内容

4 个答案:

答案 0 :(得分: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);
   });

答案 1 :(得分:5)

这应该有效:

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

选择器旁边的第二个参数将搜索限制为仅仅部分DOM树,在此部分中将div限制为a元素的父项。

答案 2 :(得分:3)

你需要得到<ul>的{​​{1}}元素,然后得到它的孩子。

例如:

<a>

您也可以拨打$(this).siblings('ul').children('li.action_li').each(function(index) { //... }); $(this).next()

答案 3 :(得分:0)

这可能有效:

$(this).parents('div').find('li').each(...
相关问题