jquery / javascript:如何从父元素的所有子元素中删除“活动”类?

时间:2014-05-25 05:00:19

标签: javascript jquery html html-lists

我有一些列表,如下所示:

<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的类。

2 个答案:

答案 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');
}};

如果您还想将活动类添加到单击的

  • 的li父级:

    $(".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();
     });