<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;
})
Je souhaite changer la couleur de ceci lorsque je clique dessus, mais d'autres éléments du même niveau annulent la couleur d'arrière-plan existante. Et lorsque d'autres éléments frères sont cliqués, les éléments frères obtiennent la couleur d'arrière-plan, et la couleur d'arrière-plan de celui-ci est annulée.
Selon l'idée devotre code, vous voulez juste faire fonctionner l'élément span et n'avez pas l'intention d'utiliser li, donc le code est implémenté comme ça
Démo en ligne
…$this.addClass("").closest("li").siblings("li").find("").removeAttr("")