遍历无序列表-jQuery

时间:2012-02-11 17:58:22

标签: javascript jquery jquery-selectors jquery-traversing

我有这样的事情:

  • 第一级1                 
                          
    • 第二级1                         
                                    
      • 第3级
      •                             
      • 第3级2
      •                         
                           
    •                     
    • 第二级2
    •                 
                
  •             
  • 第一级2
  •         

我想将addClass添加到包含锚标记的li元素之后的所有同级li元素。

我试过这个

$(li>a).next().addClass('makebold');

$(li> a)会选择第一级1 li元素,然后根据 next()选择所选/匹配的紧随其后的兄弟元素,通过添加类应该变为BOLD的元素必须是第一级2

but the li elements-of 2nd and 3rd level are getting bold . I am wondering why ?

这是我的ul list的html代码

<ul> <li><a href="">first level 1</a> <ul> <li>2nd level 1 <ul> <li><a href="">3rd level</a></li> <li>3rd level 2</li> </ul> </li> <li>2nd level 2</li> </ul> </li> <li>first level 2</li>
</ul>

2 个答案:

答案 0 :(得分:1)

您正在选择a后面的元素,而不是li之后的元素。请改用:

$('li > a').parent().next().addClass('makebold');

答案 1 :(得分:0)

这个怎么样:

$('li > a').parent().find('li').addClass('makebold');

选择作为li元素后代的li元素,这些元素具有锚元素作为子元素。我希望我能正确理解你的问题。基于其他答案,我只能假设我们中的一些人不明白你的要求。