我有这部分 HTML:
<div id="menu">
<ul>
<li><a href="/">Startseite</a></li>
<li class="active"><a href="/pacmodule/glass">Brillengläser</a></li>
<li><a href="/pacmodule/completeglass">Komplettbrille</a></li>
<li><a href="/t/Comingsoon">Sportbrillen</a></li>
<li><a href="/PacCategoryRedirect/0">Marketing</a></li>
<li><a href="/customer/statistics">Statistik</a></li>
</ul>
</div>
我想删除 class="active"参数并将其设置在我具有 href="/pacmodule/completeglass"属性的 li 标记中。
我用 jquery 成功完成的第一部分:
$("#menu").find("ul:first").find(".active").removeClass("active");
但我对第二部分有疑问。这只选择一个标签:
$('a[href="/pacmodule/completeglass"]').parent().html();
这都是 ul 标签:
$('a[href="/pacmodule/completeglass"]').parent().parent().html();
如何在 href="/pacmodule/completeglass"的 li 标签中设置 class="active"属性
谢谢你的帮助。
最佳答案
您不需要 html()
调用。他们只是将 innerHTML 作为字符串返回。您可能希望返回 outerHTML
(对于 outerHTML,请使用类似 ...parent()[0].outerHTML
的内容)
试试这个:
$('a[href="/pacmodule/completeglass"]').closest('li').addClass('active');
它会根据 href = "/pacmodule/completeglass"找到 anchor ,然后找到最近的祖先是 LI
,然后将类 active
添加到
closest
是查找特定类型祖先的最有用方法。它比使用 parent()
更好,因为 closest
可以应对 HTML 结构的变化。
注意:如果您解释了总体目标,可能有比搜索链接 href 更好的方法 :)
更新
你不想用这个删除之前的选择,因为它太具体了:
$("#menu").find("ul:first").find(".active").removeClass("active");
试试这个:
$("#menu li.active").removeClass("active");
关于javascript - 如何获取父元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25810438/