当单击<li>标签下的<a>标签时,我想将活动类添加到该<li>标签中
I want to add class active to <li> tag when <a> tag under that <li> tag is clicked
My index.html具有以下DOM结构:
ul -> class:nav nav-tabs -> li -> a
我想在单击该<li>
中的<a>
元素时将类.active
添加到<li>
元素。我已经编写了这段代码,但它不起作用:
主.js
var main = function(){
$("a").click(function() {
$('li').removeClass('.active');
$(this).addClass(".active");
});
};
$(document).ready(main);
试试这个:
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()
不需要以.
为前缀。
.name
是用于查找具有 name
类的元素的选择器。 addClass
和removeClass
期望类名,而不是选择器。要添加"active"类,只需给它字符串"active"
$(this).addClass('active')
您还将类直接添加到单击的链接中。如果要将其添加到包含<li>
,请使用:
$(this).parent().addClass('active')
您尝试操作li
,但您操作的是a
标签。
您需要使用:
$(this).closest('li').addClass("active");
编辑
并且也不使用其他人提到的.
字符
你需要提到类名而不.
$(this).addClass("active");
相关文章:
- Tabindex Dosent隐藏li标签的内容
- 为什么文本在 li 标签中开始一个新行
- 如何在 angularjs 中使用 li 和 ul 标签的引导网格
- 如何使用jquery按数据属性删除li标签
- 使用 javascript 获取第二个 li 标签中的值
- 如何将多个类添加到 li 标签
- 如何在 json2html 库中使用 li 标签
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- jQuery只针对元素具有特定类的li标签
- 选择带有 jQuery 标签的“li”项时出错
- 如何在单击 li 项时通过 AJAX 传递 li 标签 ID
- JavaScript 将元素添加到 li 标签
- 未定义动态 li 标签内按钮的 onclick 事件
- 禁用标签“li”中的鼠标
- 使用 jQuery 获取下降 li 锚点标签文本
- 糟糕的Css设计导致第三方菜单混乱的图像和LI标签
- 有人能理解为什么我的jquery函数上下滑动在我的第一个li标签上不能正常工作吗
- 从li标签获取图片来源
- 打开并用标签包装li元素
- Javascript:检索li中存在的标签的内容