如何获取父元素?

问题描述:

我有HTML的这一部分:如何获取父元素?

<div id="menu"> 
    <ul> 
     <li><a href="/">Startseite</a></li> 
     <li class="active"><a href="/pacmodule/glass">Brillengl&#228;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"); 
+0

完蛋了!非常感谢你! – Korl 2014-09-12 14:28:08

+1

@Korl:没问题。如果您不需要更多信息,请接受为答复/ upvote。你现在有足够的评价:) – 2014-09-12 14:32:12

$("#menu").find("ul:first").find(".active").removeClass("active"); 

这可以更有效写它:

$("#menu").find("li.active").removeClass("active"); 

然后DOM不需要寻找任何UL,而是直接进入类.active

+0

为什么不只是'$(“#menu li.active”)。removeClass(“active”);'?我已经介绍过了。这个答案实际上并不回答问题,所以应该是一个评论。干杯。 – 2014-09-12 14:39:29

+0

是的,没有看到您的编辑,但ofc。 WP @TrueBlueAussie – 2014-09-12 14:42:23

.closest()

$("li").removeClass("active").find($('a[href="/pacmodule/completeglass"]')).closest('li').addClass('active'); 

DEMO

很容易地做到这一点(到您的JS文件):

你为什么不试试这个:

$("#menu").find("ul:first").find(".active").removeClass("active"); 
$('a[href="/pacmodule/completeglass"]').parent().addClass("active"); 

你可能想检查此fiddle