2012-07-17 56 views
0

我想添加一個段落到一個使用id選擇器的h2標籤。但是,由於某種原因,它不能正常工作。有人會幫助我嗎?appendTo不工作在jQuery代碼?

我有一個小提琴,我沒有嘗試過。請參閱:http://jsfiddle.net/ahLqZ/4/

這裏是我下面的代碼:

$(document).ready(function(){ 

     $("#cevre h2").appendTo($(this).next("p")); 

    })​ 
+2

你有ID重複元素,它是無效的。元素ID應該是唯一的 – Chandu 2012-07-17 15:26:05

+0

這是你在stackoverflow上的第二個問題 - 請學習如何接受答案......如果你不知道我在說什麼[點擊此處](http://meta.stackexchange.com/a/5235/170679) – ManseUK 2012-07-17 15:33:00

回答

4

試試這個:

$("#cevre h2").each(function() { 
    $(this).appendTo($(this).next("p")); 
}); 

用途.each()遍歷h2元素 - 然後$(this)成爲每個h2元素,而那時,document元素

Working example here

一個已經存在的DOM元素上使用appendTo注意移動它......你可能想要的東西(也許不是)是這樣的:

$("#cevre h2").each(function() { 
    $(this).clone().insertAfter($(this).next("p")); 
}); 

用途.clone()創建h2第一的克隆和.insertAfter()插入<p>元素之後的新克隆的DOM元素而不是在它...

Working example here

另注 - 它不是合法的HTML有重複id屬性在單一頁面......我建議你改變<div id="cevre"><div class="cevre"> ...您的jQuery選擇就成爲$(".cevre h2")

另一個音符 - 你應該緩存jQuery對象,如果他們多次使用:

$(".cevre h2").each(function() { 
    var $this = $(this); 
    $this.clone().insertAfter($this.next("p")); 
}); 
+1

另外,OP可能希望'insertAfter()',而不是'appendTo()'。 – JJJ 2012-07-17 15:33:09

+0

@Juhana是的,你可能是正確的..更新我的答案...謝謝 – ManseUK 2012-07-17 15:35:22

+0

@thirtydot - 這是非常具有諷刺意味的 - 我剛剛發佈了一個答案告訴某人添加'var'關鍵字以防止污染全局命名空間 - 然後我做它....感謝編輯... – ManseUK 2012-07-17 16:08:46