我的index.html具有以下DOM结构:
ul -> class:nav nav-tabs -> li -> a
如果点击.active
中的<li>
元素,我想将<a>
类添加到<li>
元素。我已经编写了这段代码,但它无效:
main.js
var main = function(){
$("a").click(function() {
$('li').removeClass('.active');
$(this).addClass(".active");
});
};
$(document).ready(main);
答案 0 :(得分:5)
试试这个:
var main = function(){
$("a").click(function() {
//travel up the DOM tree to the "closest" li element, add "active" class to it
$(this).closest('li').addClass("active");
});
};
$(document).ready(main);
所以你关闭了,但是你有几个问题:
active
类应用于包含li
,而不是。{
到被点击的a
addClass()
和removeClass()
不需要以.
为前缀。答案 1 :(得分:2)
.name
是选择器,用于查找类name
的元素。 addClass
和removeClass
期望类名,而不是选择器。要添加一个&#34;活动&#34;类,只需为其指定字符串"active"
:
$(this).addClass('active')
您还要将该类直接添加到已单击的链接中。如果要将其添加到包含<li>
,请使用:
$(this).parent().addClass('active')
答案 2 :(得分:2)
您尝试操纵li
,但操纵a
标记。
您需要使用:
$(this).closest('li').addClass("active");
修改强>
并且不会像其他人提到的那样使用.
字符
答案 3 :(得分:0)
您需要提及没有.
$(this).addClass("active");