我有以下简单的导航链接,我想确保当我点击任何链接时,"活动"除了刚刚点击的那个,除了所有其他li之外,class被删除了。在jQuery中,如何设置我的选择器来实现这一目标?
<ul class="nav">
<li><a href="#">Link 1</a></li>
<li class="active"><a href="#">Link 2</a></li>
<li class="active"><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
答案 0 :(得分:1)
这是我对此的看法......
$(function() {
$('.nav li a').on('click', function() {
$('.nav li').removeClass('active'); // remove active class from all
$(this).closest('li').addClass('active'); // add active classs to element clicked
});
});
&#13;
.active {
color: red;
border: 1px solid green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav">
<li><a href="#">Link 1</a>
</li>
<li class="active"><a href="#">Link 2</a>
</li>
<li class="active"><a href="#">Link 3</a>
</li>
<li><a href="#">Link 4</a>
</li>
</ul>
&#13;
答案 1 :(得分:0)
你可以做到
$('li').click(function() {
var clicked = this;
$(this).siblings('li').each(function() {
if (this !== clicked) {
$(this).removeClass('active');
}
});
})
答案 2 :(得分:0)
$(".nav").on("click","li", function(){
$(".nav li").removeClass('active')
$(this).addClass('active')
})
答案 3 :(得分:0)