为了账号安全,请及时绑定邮箱和手机立即绑定

js 怎么动态添加li的背景颜色,其余同级li的同一个class删除

js 怎么动态添加li的背景颜色,其余同级li的同一个class删除

智慧大石 2018-11-14 13:15:20
<ul>    <li><a href="#banner"><span class="list-nav"></span></a></li>    <li><a href="#section-one"><span class="list-nav"></span></a></li>    <li><a href="#section-two"><span class="list-nav"></span></a></li>    <li><a href="#section-three"><span class="list-nav"></span></a></li>       </ul>$('.list-nav').first().addClass("spanList");$('.list-nav').on('click',function(){    $(this).css("background","#6090b6");    $(this).addClass("spanList");    $(this).siblings().removeClass("spanList");    var href = $(this).attr("href");    var pos = $(href).offset().top;    $("html,body").animate({scrollTop: pos}, 1000);           return false;})我想点击的时候将this改颜色,但是其他同级li取消已有的背景颜色。并且当点击其他同级元素时,同级元素获得背景颜色,this的背景颜色取消。
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

根据你的代码反应的思路,你只是想操作span元素,并没有操作li的意图,所以代码这样实现

$('.list-nav').first().addClass("spanList");

$('.list-nav').on('click',function(){

    $(this).css("background","#6090b6");

    $(this).addClass("spanList");

    

    /** 以下这段实现你说的功能 **/

    var $otherSpans = $(this).closest('li').siblings().find('span.list-nav');

    $otherSpans.css("background", "");

    $otherSpans.removeClass("spanList");

     /** 以上这段实现你说的功能 **/

    

    var href = $(this).attr("href");

    var pos = $(href).offset().top;

    $("html,body").animate({scrollTop: pos}, 1000);       

    return false;

})

在线 Demo

查看完整回答
反对 回复 2018-12-08
  • 1 回答
  • 0 关注
  • 974 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信