如何在所有活跃的li之前添加课程

时间:2014-04-26 05:22:57

标签: jquery css

我想要的是在活动类之前添加类所有LI bellow就像代码一样

说当前的3级数字li然后再添加1级和2级li

<ul id="nav">
      <li class="bar"><a href="#"><span>Home</span></a></li>
      <li class="bar" ><a href="#"><span>Products</span></a></li>
      <li class="current"><a href="#"><span>Rentals</span></a></li>
      <li><a href="#"><span>Company</span></a></li>
       <li><a href="#"><span>Services</span></a></li>
      <li><a href="#"><span>Location</span></a></li>
      <li><a href="#"><span>Contact Us</span></a></li>
    </ul>

当第五个数字激活

时相同
 <ul id="nav">
          <li class="bar"><a href="#"><span>Home</span></a></li>
          <li class="bar" ><a href="#"><span>Products</span></a></li>
          <li class="bar" ><a href="#"><span>Rentals</span></a></li>
          <li class="bar" ><a href="#"><span>Company</span></a></li>
          <li class="current"><a href="#"><span>Services</span></a></li>
          <li><a href="#"><span>Location</span></a></li>
          <li><a href="#"><span>Contact Us</span></a></li>
        </ul>
我试着。如果我可以做到这一点,那么我将继续更新

5 个答案:

答案 0 :(得分:3)

您可以使用try .prevAll()

$('#nav li.current').prevAll().addClass('bar')

答案 1 :(得分:0)

你应该使用jquery

的prevAll()函数
$('#nav li.current').prevAll().addClass('bar');

答案 2 :(得分:0)

$("#nav li").find(".current").prevAll().addClass('bar'); 

这将为所有prev添加类。元素

答案 3 :(得分:0)

检查此demo

//To select all previous elements of `.current` element:
$('.current').prevAll().addClass('bar');
//To select all next elements of `.current` element:
$('.current').nextAll().addClass('bar');

答案 4 :(得分:0)

我知道问题是标记为jQuery,但是这里也是纯粹的js方法,使用previousElementSibling

var el = document.querySelector('.current').previousElementSibling;
while (el) {
   el.classList.add('bar')
   el = el.previousElementSibling;
}

Live Demo