我想在选择特定列表时设置属性class="active"
。例如,当特定列表处于活动状态时,它应该变为活动状态。选择其他时,该列表应该激活。
我当前的jQuery代码在从列表中选择任何项目时将所有列表设置为活动。相反,我只想要选择该项应该是活动的。
如何修改我的jQuery代码?
<ul class="nav nav-pills nav-stacked span5">
<li class = "list"><a href="#" class="span3">abc</a></li>
<li class = "list"><a href="#" class="span3">def</a></li>
<li class = "list"><a href="#" class="span3">ghi</a></li>
<li class = "list"><a href="#" class="span3">jkl</a></li>
</ul>
的jQuery
$(document).ready(function () {
$(".span3").click(function () {
$('.list').attr("class","active"); // sets all the list item active. Instead I want only that particular element to be active.
});
});
答案 0 :(得分:3)
使用$(this).parent()
仅获取点击的list
,并且使用addClass
代替attr
更容易。
$(document).ready(function () {
$(".span3").click(function () {
$(this).parent().addClass("active");
});
});
如果您希望所有其他列表也不活动:
$(document).ready(function () {
$(".span3").click(function () {
$('.list').removeClass("active");
$(this).parent().addClass("active");
});
});
答案 1 :(得分:1)
您可以使用以下内容添加课程:
$(document).ready(function () {
$(".span3").click(function () {
$(this).parent().addClass("active");
});
});
并删除这样的类:
$(document).ready(function () {
$(".span3").click(function () {
$('.list').removeClass("active");
});
});
在jQuery API文档addClass()和removeClass()
中查看<强>更新强>
是的,我忘记了父母()
答案 2 :(得分:1)
Jquery提供更多功能。没人在使用。
Jquery代码:
$(document).ready(function () {
$(".nav>li").click(function () {
$(this).siblings('.active').toggleClass("active");
$(this).toggleClass("active");
});
});
链接:http://jsfiddle.net/techsin/hJYfu/3/ 新
注意html结构。
答案 3 :(得分:0)
使用addClass方法而不是attr
$(document).ready(function () {
$(".span3").click(function () {
$('.list').removeClass('active');
$(this).parent().addClass("active");
});
});