2010-12-13 106 views
37

我的HTML結構是這樣的:如何在jQuery中移動HTML元素?

<div id="parent"> 
    <div id="1">Some content</div> 
    <div id="2">Some content</div> 
</div> 

我想移動的元素id="2"id="1"之前的地方,以便其將是這樣的:

<div id="parent"> 
    <div id="2">Some content</div> 
    <div id="1">Some content</div> 
</div> 

我怎麼做這樣的事情在jQuery的?

+1

@rahul - 他們在HTML4 *無效*,清楚,鑑於最近的變化;) – 2010-12-13 11:27:55

+2

@rahul:ID是僅僅只例如:),真正的腳本當然不是這樣。 – GusDeCooL 2010-12-13 12:41:46

回答

66

您可以使用.insertBefore(),像這樣:

$("#2").insertBefore("#1"); 

或者,.prependTo(),像這樣:

$("#2").prependTo("#parent"); 

...或使用#1.insertAfter().appendTo() ...或幾個反其他方式實際上,它只是取決於你實際上後,上述2方法應儘可能最短,但給予2個ID。

我是假設這只是一個例子,請記住在實際的HTML4頁面中使用不以數字開頭的ID,它們是無效的並會導致幾個問題。

+0

謝謝你的理解,如果ID只是爲了舉例,還有你的代碼'$(「#2」)。insertBefore(「#1」);'清除我的問題......非常感謝:) – GusDeCooL 2010-12-13 12:47:40

7

簡單地做:

$('#1').before($('#2')); 
+1

爲什麼'$('#2')'而不是'#2'? – 2015-02-05 17:45:33

+1

@FranciscoCorralesMorales因爲,['之前'](http://api.jquery.com/before/)方法期望作爲參數,一個HTML字符串或一個DOM元素或一個元素數組或一個jQuery對象。 '#2''不是其中的任何一個。 – TheWanderingMind 2015-06-05 19:04:51