2012-10-07 65 views
-3

我有一段代碼,基本上是這樣的:得到DIV的HREF

<div class="parent"> 
    <a href="#" class="link"></a> 
    <div class="text"> Some plain text </div> 
</div> 

現在我一個HREF追加到div.text這樣的:

$('div.text').each(function(){ 
    $(this).append('<a class="append" href="' + $(this).attr('href') + '"></a>'); 
});​ 

的問題是,我需要從a.link獲得href。我怎麼去一個級別的HREF?顯然'this'不起作用。我也不能用類名稱來調用它,因爲有很多a.link,它們也是動態創建的。我也不能使用「父母」或「父母」,因爲某些原因,它不適用於我的腳本。

+2

jQuery有很多不同的遍歷DOM的方法:http://api.jquery.com/category/traversing/。 –

+2

*「我怎樣才能達到那個href的水平?......我也不能使用」父母「或」父母「,出於某種原因它不起作用......」*也許如果你的HTML更加乾淨地縮進,你會發現''不是父母。 –

回答

4

.parent()將不起作用,因爲a元素是兄弟,而不是父級。您可以使用.prev()代替:

$(this).append('<a class="append" href="' + $(this).prev().attr('href') + '"></a>'); 

.prev()方法將返回前一個元素。如果您的標記發生變化,您還可以使用.prevAll(".link").siblings(".link")

+0

我不知道'prev''prevall'和'兄弟姐妹'。非常感謝:) – Youss

+1

@Youss - 不客氣,很高興我可以幫助:)正如Felix在你的問題的評論中暗示的那樣,花點時間瀏覽jQuery API是個不錯的主意。通常有很多方法可以解決您所能想象的每個DOM遍歷問題! –