[英]add class to parent li when submenu is active
尽管搜寻了几个小时,但我在这里遇到了问题。 我有一个包含子菜单的菜单。
<div class="themenu">
<ul>
<li>Link 1 //Want to add class catactive here when the following submenu is active
<div class="thesubmenu">
<ul>
<li class="subcat-active">submenu1</li>
</ul>
</div>
</li>
</ul>
</div>
我尝试使用此查询,但没有发生。
$(document).ready(function(){
if($('.thesubmenu ul li').hasClass('subcat-active')){
$(this).parent('.themenu ul li').addClass('cat-active');
}
});
有许多方法可以编写此代码,但无需进行迭代( .each()
)或使用.hasClass()
会减慢此简单调用的速度。
只需选择.subcat-active
的li
项,然后使用closest('li')
查找最接近的li
祖先并添加类。 您需要使用.parent()
首先是因为closest()
包括开始元素,这也是一个li
。
$(document).ready(function(){
$('.thesubmenu ul li.subcat-active').parent().closest('li').addClass('cat-active');
});
$(document).ready(function(){
$('.subcat-active').each(function () {
$(this).parents('li').eq(0).addClass('cat-active');
});
});
做就是了:
$(document).ready(function(){
$('.thesubmenu ul li.subcat-active').each(function(){
$(this).parent().closest('li').addClass('cat-active');
});
});
演示: http : //jsfiddle.net/bpkpn6b5/
这是一个演示
$(document).ready(function(){
if ($('.thesubmenu ul li').hasClass('subcat-active')) {
$('.thesubmenu ul li').parents('li:eq(0)').addClass('cat-active');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.