我正在尝试将一个'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”类添加到所有顶级列表项。
与以往一样,我们将非常感谢任何帮助。
答案 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');