3

如果其中一个子项具有“活动”类,我正在尝试将“活动”类添加到父列表项。

当前的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');
    } 

​</p>

​</p>

请参阅http://jsfiddle.net/FmT52/以查看我已经走了多远。

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

与以往一样,我们将不胜感激任何帮助。

4

3 回答 3

3

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

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

检查小提琴 </p>

于 2012-12-13T16:28:24.313 回答
3

试试这个:

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

签出小提琴:http: //jsfiddle.net/FmT52/8/

于 2012-12-13T16:32:22.623 回答
0

你可以做更简单的:

 $('ul.top li.parent:has(.active)').addClass('active');
于 2012-12-13T16:19:21.510 回答