我想在链接的下一个父元素(li)中添加一个特定的类。例如,我在' Home"标签,但同时我也需要'新课程'到'关于'李。 这是我的标记
这适用于静态类,但是当动态添加链接上的活动类时,这不起作用。
我尝试了这个但却无法正常工作
$('li a').click(function() {
if ($(this).hasClass('active')) {
$(this).parent().next().addClass('active');
}
else{
$(this).parent().next().removeClass('active');
}
});

<ul>
<li><a class="active" href="">Home</a></li>
<li class="new-class"><a href="">About</a></li>
<li><a href="">Service</a></li>
<li><a href="">Portfolio</a></li>
<li><a href="">Contact</a></li>
</ul>
&#13;
答案 0 :(得分:2)
我认为这就是你想要的:
$('li a').click(function(e) {
e.preventDefault();
$(this).closest('ul').find('a.active').removeClass('active');
$(this).closest('ul').find('li.new-class').removeClass('new-class');
$(this).addClass('active');
$(this).parent().next().addClass('new-class');
});
&#13;
.active{ color:red; }
.new-class a { color:blue; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a class="active" href="">Home</a></li>
<li class="new-class"><a href="">About</a></li>
<li><a href="">Service</a></li>
<li><a href="">Portfolio</a></li>
<li><a href="">Contact</a></li>
</ul>
&#13;
答案 1 :(得分:0)
有next()
功能
$(this).parent().next().addClass('active');
然而,这不是你想要的。这为li添加了一个类。如果要将类添加到内部,则需要
$(this).parent().next().find("a").addClass('active');
答案 2 :(得分:0)
$(this).parent().next().addClass('active');
这将首先到达被点击的锚的li。 然后,如果单击第一个li,它将按顺序选择下一个元素作为第二个li,然后,我们将该类添加到该元素。
答案 3 :(得分:0)
如果我理解正确(点击a
上课active
将课程new-class
添加到后续li
?),这应该有效:
$('.tab a').click(function() {
if ($(this).hasClass('active')) {
$(this).parent().next().addClass('new-class');
} else{
$(this).parent().next().removeClass('new-class');
}
});