如何在<li>中找到<ul>然后将类添加到</li> <li> </li> </ul>

时间:2011-01-08 15:59:41

标签: jquery html dom-traversal

<ul>
<li>nav</li>
<li>nav</li>
<li>nav</li>
<li class="how do i addClass here">nav "how to addClass with in this li"
 <ul>
     <li>nav</li>
     <li>nav</li>
     <li class="how do i addClass here">nav "how to addClass with in this li"
          <ul>
             <li>nav</li>
             <li>nav</li>
             <li>nav</li>
         </ul>
     </ul>
 </li>
 </ul>

3 个答案:

答案 0 :(得分:3)

$('ul').parent('li').addClass('someclass');

选择所有<ul>元素,然后选择do .parent('li')。这将选择直接父元素,如果它是<li>元素。然后use .addClass()添加课程。

这使用了一个有效的CSS选择器,这对于支持querySelectorAll的浏览器的性能来说是一件好事。

不支持它的浏览器也应该执行速度快,因为jQuery可能会执行getElementsByTagName

答案 1 :(得分:1)

试试这个:

$("li:has(ul)").each(function(){
   $(this).addClass("<YOUR_CLASS_NAME>")
 }
)

答案 2 :(得分:0)

$('body ul:nth-child(1) li:nth-child(4)').addClass('test').find('ul li:nth-child(3)').addClass('test2');

现场演示:http://jsfiddle.net/ps8AA/