搜索

首页  >  问答  >  正文

javascript - 选择一个标签,给选中的标签添加类样式,给同辈元素删除类样式

单击一个标签,给他添加类样式,同时删除同辈元素类样式。

//单击事件,
$(".user-menu li a").click(function(){

//单击时,给他添加样式,同时遍历同辈元素删除该样式
//但是实现不了,是不是我的思路错了
$(this).addClass("active").siblings().removeClass("active");        

});

//标签,li标签里面有个a标签,初始只有收藏车辆有样式,,不知道为什么显示不出来
<ul class="user-menu">
<li>收藏车辆</li>
<li>降价提醒</li>
<li>浏览记录</li>
</ul>

未点击时

点击后 是想点击的标签添加演示,把原来标签的样式删除,只留一个样式

点击后 想实现的样子 未实现

黄舟黄舟2729 天前869

全部回复(3)我来回复

  • PHP中文网

    PHP中文网2017-06-12 09:22:42

    $(".user-menu li a").click(function(){

    //先全部干掉
    $(".user-menu li a").removeClass("active");    
    //再给this加上
    $(this).addClass("active");        

    });
    我一般是这么用的,同求更好方案;
    补充:你的选择器选到的是li标签内部的a标签,然后找a标签的同辈元素,是找不到其他li标签下的a标签的。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:22:42

    先遍历所有元素,然后给当前的加样式,其他的移除这个样式

    回复
    0
  • 大家讲道理

    大家讲道理2017-06-12 09:22:42

    我的方案:

    $('.user-menu li a').on('click.app', function(){
        // 自身加属性 - 同辈移属性
        $(this).addClass('active')
            .parent() // 退回到父级 li
            .siblings()
            .removeClass('active');
    });
    

    回复
    0
  • 取消回复