使用以下代码,我希望用户单击li(div ul li a)中的标记
默认情况下,第一个标记有一个类“on”。单击tag时,代码应该将class('on')添加到'this',并从所有其他同级中removeClass('on')。
addClass('on')可以工作,但是$(this.simplines().removeClass('on')根本不工作。

var menu01_list = $(".profile_menu01 ul li > a");

menu01_list.click(function(){
  $(this).siblings().removeClass('on');
  $(this).addClass('on');
});

html代码:
<div class="profile_menu01">
    <ul>
        <li><a class="btn_my_pick on" href="#">My Pick</a></li>
        <li><a class="btn_my_pickpot" href="#">3<span class="alert_num"></span>My Picpot</a></li>
        <li><a class="btn_my_review" href="#">My ReView</a></li>
        <li><a class="btn_my_photos" href="#">My Photos</a></li>
    </ul>
</div>

最佳答案

您正在查看<a>元素的同级元素,由于它们包含在<li>中,因此没有同级元素。在检查同级之前,您必须先向上遍历一个级别,直到<li>(然后再向下遍历):

menu01_list.click(function(){
   $(this).parent().siblings().children().removeClass('on');
   $(this).addClass('on');
});

或者,可以在li上运行函数:
var menu01_list = $(".profile_menu01 ul li");

menu01_list.click(function(){
   $(this).siblings().children().removeClass('on');
   $(this).children().addClass('on');
});

关于jquery - jQuery不会选择同级元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48494509/

10-12 12:29