我有一些列表,如下所示:
<div id="menu" class="divclass">
<ul id="firstlist">
<li><a href='#'>...</a></li>
<li><a href='#'>...</a></li>
<li><a href='#'>...</a></li>
</ul>
<ul id="secondlist">
<li><a href='#'>...</a></li>
<li><a href='#'>...</a></li>
<li><a href='#'>...</a></li>
</ul>
<!-- etc. - similar unordered lists follow. -->
</div>
当点击其中一个<a>
元素时,我想清除其<li>
类列表中的所有'active'
元素。我一直在用.parent()
,.children()
和.removeClass('active')
摆弄,但我想我完全错过了一些东西,因为我无法让它发挥作用。任何人都可以帮我一把吗?这是脚本的开头:
$(document).ready(function() {
$(".divclass ul li a").click(function() { ... }}
其中.divclass
是包含无序列表的div的类。
答案 0 :(得分:4)
全部删除
$(".divclass ul li a").click(function() {
$(this).closest('.divclass').find('li').removeClass('active');
}};
仅删除同一列表
$(".divclass ul li a").click(function() {
$(this).closest('ul').find('li').removeClass('active');
}};
如果您还想将活动类添加到单击的
$(".divclass ul li a").click(function() {
$(this).parent().addClass('active').siblings().removeClass('active');
}};
答案 1 :(得分:2)
您可以使用:
$("#menu a").click(function() {
//to remove class active from li elements
$(this).closest('ul').find('.active').removeClass('active');
//to remove li with active class
$(this).closest('ul').find('.active').remove();
});