2014-09-12 176 views
2

我有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」

謝謝你的幫助。

回答

1

你不需要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

0
$("#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

0

.closest()

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

DEMO

0

很容易地做到這一點(到您的JS文件):

0

你爲什麼不試試這個:

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

你可能想檢查此fiddle