我认为这个例子会说清楚。我的HTML是这样的:
<li class='nav-active'><span class='maillink' id='spnInbox' >Inbox</span></li>
<li><span class='maillink' id='spnSentMail'>Sent Mail</span></li>
<li><span class='maillink' id='spnDraft'>Draft</span></li>
<li><span class='maillink' id='spanTrash'>Trash</span></li>
当用户点击任何其他链接时说草稿然后我想从收件箱“li”清除nav-active并将该类分配给草稿“li”。我的问题是如何从.maillink点击事件获得nav-active li。我知道我可以编写每个函数并删除它,但我想知道是否有选择器来执行此操作。
感谢您的帮助。
答案 0 :(得分:1)
使用siblings方法获取nav-active
类的兄弟并清除该类。
接下来将此类分配给单击的元素。
这将转到父li,然后找到具有类nav-active
的li兄弟,并从那里删除该类。接下来将该类应用于所单击的span.maillink
元素的父级。
$(".maillink").click(function() {
$(this).parent("li").siblings(".nav-active").removeClass("nav-active");
$(this).parent("li").addClass("nav-active");
});
答案 1 :(得分:1)
然后使用closest方法siblings。这将遍历给定元素的父级,直到找到第一个LI项,然后找到兄弟li.nav-active元素。
$(".maillink").click(function(e) { $(this).closest("li").siblings("li.nav-active"); } );
答案 2 :(得分:1)
在点击处理程序中:
jQuery (this).parent().siblings('.nav-active').removeClass ('nav-active');
jQuery (this).parent().addClass('nav-active');
答案 3 :(得分:0)
$(".maillink").click(function(){ $(this).parents("nav-active li").DoRestOfCode(); });
我认为这就是你所要求的。