2010-12-13 80 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