如何获取父元素?
我有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>
我想删除类=“活动”参数,并将其设置在L1标签在那里我有HREF =“/ pacmodule/completeglass”属性附加伤害。
第一部分我成功地用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”
谢谢你的帮助。
你不需要html()
调用。他们只是将innerHTML作为字符串返回。你可能预计将返回outerHTML
(用于outerHTML使用像...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");
$("#menu").find("ul:first").find(".active").removeClass("active");
这可以更有效写它:
$("#menu").find("li.active").removeClass("active");
然后DOM不需要寻找任何UL,而是直接进入类.active
为什么不只是'$(“#menu li.active”)。removeClass(“active”);'?我已经介绍过了。这个答案实际上并不回答问题,所以应该是一个评论。干杯。 – 2014-09-12 14:39:29
是的,没有看到您的编辑,但ofc。 WP @TrueBlueAussie – 2014-09-12 14:42:23
$("li").removeClass("active").find($('a[href="/pacmodule/completeglass"]')).closest('li').addClass('active');
很容易地做到这一点(到您的JS文件):
你为什么不试试这个:
$("#menu").find("ul:first").find(".active").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");
你可能想检查此fiddle
完蛋了!非常感谢你! – Korl 2014-09-12 14:28:08
@Korl:没问题。如果您不需要更多信息,请接受为答复/ upvote。你现在有足够的评价:) – 2014-09-12 14:32:12