JQuery将类添加到父对象

时间:2012-12-13 16:17:27

标签: jquery addclass

我正在尝试将一个'active'类添加到父列表项中,如果其中一个孩子的类具有'active'。

当前的HTML:

<ul class="top">
  <li class="parent"><a href="#">Link1</a>
    <ul class="drop">
      <li class="active"><a href="#">Link1-1</a></li>
      <li><a href="#">Link1-2</a></li>
      <li><a href="#">Link1-3</a></li>
    </ul>
  </li>
  <li><a href="#">Link2</a></li>
  <li class="parent"><a href="#">Link3</a></li>
</ul>

当前的JQuery:

if($('ul.top li ul.drop li').hasClass('active')) {
            $('ul.top li.parent').addClass('active');
    } 

请参阅http://jsfiddle.net/FmT52/以了解我的情况。

我已经成功完成了一半但只是使用Jquery将“active”类添加到所有顶级列表项。

与以往一样,我们将非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

您可以遍历所有li's并将该类添加到closest parent ul

$('ul.top li').each(function(){
    var $this = $(this);
    if($this.hasClass('active')){
        $this.closest('li.parent').addClass('active');
    }        
});

<强> Check fiddle

答案 1 :(得分:3)

试试这个:

$('li.active').parent().closest('li.parent').addClass('active');

结帐小提琴: http://jsfiddle.net/FmT52/8/

答案 2 :(得分:0)

你可以做得更简单:

 $('ul.top li.parent:has(.active)').addClass('active');