我在这里遇到问题,尽管谷歌搜索了几个小时。 我有一个菜单,有子菜单。
<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');
}
});
答案 0 :(得分:2)
有很多方法可以写这个,但不需要迭代(.each()
)或使用.hasClass()
来减慢这个简单的调用。
只需使用li
选择.subcat-active
项,然后使用closest('li')
查找最近的li
祖先并添加该课程。您需要先使用.parent()
,因为closest()
包含的起始元素也是li
。
$(document).ready(function(){
$('.thesubmenu ul li.subcat-active').parent().closest('li').addClass('cat-active');
});
答案 1 :(得分:0)
$(document).ready(function(){
$('.subcat-active').each(function () {
$(this).parents('li').eq(0).addClass('cat-active');
});
});
答案 2 :(得分:0)
只是这样做:
$(document).ready(function(){
$('.thesubmenu ul li.subcat-active').each(function(){
$(this).parent().closest('li').addClass('cat-active');
});
});
答案 3 :(得分:0)
这是DEMO
$(document).ready(function(){
if ($('.thesubmenu ul li').hasClass('subcat-active')) {
$('.thesubmenu ul li').parents('li:eq(0)').addClass('cat-active');
}
});