我有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();
我如何在li标记中设置class =“ active”属性,其中href =“ / pacmodule / completeglass”
谢谢你的帮助。
您不需要html()
通话。他们只是将innerHTML作为字符串返回。您可能预期会返回outerHTML
(对于externalHTML使用类似的东西...parent()[0].outerHTML
)
试试这个:
$('a[href="/pacmodule/completeglass"]').closest('li').addClass('active');
它将基于href =“ / pacmodule / completeglass”找到锚,然后找到最接近的祖先LI
,然后将其添加到该类active
中。
closest
是找到特定类型祖先的最有用的方法。它比采用更好的parent()
作为closest
与HTML结构变化对应。
注意:如果您解释了总体目标,可能有比搜索链接href更好的方法:)
更新
您不想使用此选项删除先前的选择,因为它太具体了:
$("#menu").find("ul:first").find(".active").removeClass("active");
试试这个代替:
$("#menu li.active").removeClass("active");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句