Javascript 如何获取父元素?
我有这部分HTML:Javascript 如何获取父元素?,javascript,jquery,html,Javascript,Jquery,Html,我有这部分HTML: <div id="menu"> <ul> <li><a href="/">Startseite</a></li> <li class="active"><a href="/pacmodule/glass">Brillengläser</a></li> <li><a
<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>
但我对第二部分有问题。此选项仅选择一个标记:
$('a[href="/pacmodule/completeglass"]').parent().html();
这全是ul标签:
$('a[href="/pacmodule/completeglass"]').parent().parent().html();
如何在li标记中设置class=“active”属性,其中href=“/pacmodule/completeglass”
谢谢您的帮助。您不需要
html()
调用。它们只是将innerHTML作为字符串返回。您可能期望它会返回outerHTML
(对于outerHTML,请使用类似于…parent()[0].outerHTML
)的内容)
试试这个:
$('a[href="/pacmodule/completeglass"]').closest('li').addClass('active');
它将根据href=“/pacmodule/completeglass”找到锚,然后找到最近的祖先,即LI
,然后将类活动添加到该类中
最近的
是查找特定类型祖先最有用的方法。这比使用parent()
要好,因为最近的
可以处理HTML结构的变化
注意:如果您解释了总体目标,可能有比搜索链接href:)更好的方法
更新
您不想删除之前的选择,因为它太具体了:
$("#menu").find("ul:first").find(".active").removeClass("active");
请尝试以下方法:
$("#menu li.active").removeClass("active");
这可以通过以下方式更有效地书写:
$("#menu").find("li.active").removeClass("active");
然后DOM不需要搜索任何ul,而是直接进入类.active
轻松做到这一点(在js文档中):
你为什么不试试这个:
$("#menu").find("ul:first").find(".active").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");
你可能想看看这个就这样!多谢各位@科尔:没问题。如果您不需要更多信息,请接受回答/投票。您现在有了足够的评级:)为什么不干脆$(“#menu li.active”).removeClass(“active”)代码>?我已经谈过了。这个答案实际上并没有回答所问的问题,所以应该是一个评论。干杯。是的,没有看到你的编辑,但是ofc。WP@TrueBlueAussie
$("#menu").find("li.active").removeClass("active");
$("li").removeClass("active").find($('a[href="/pacmodule/completeglass"]')).closest('li').addClass('active');
$("#menu li").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");
$("#menu").find("ul:first").find(".active").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");