2010-07-28 78 views
11

如何将HTML元素移动到另一个元素。请注意,我并不是说移动元素的位置。考虑下面的HTML代码:如何移动HTML元素

<div id="target"></div> 
<span id="to_be_moved"></span> 

我想移动“to_be_moved”到“目标”,让“目标”有子“to_be_moved”了。所以结果应该是这样的:我已经在谷歌搜索(尤其是使用原型框架),但我的一切

<div id="target"><span id="to_be_moved"></span></div> 

是移动的位置,而不是我想要的。以前感谢。

回答

19
document.getElementById('target').appendChild( document.getElementById('to_be_moved')) 
+0

那么“to_be_moved”呢?它还在原来的位置吗? – iroel 2010-07-28 21:23:26

+0

它不应该。尝试一下? – 2010-07-28 21:26:02

+2

咦?该元素的父项将会更改,因此它会“移动”。该节点不是“删除”,因为它现在在DOM树中的其他地方。 – 2010-07-28 21:29:50

0

假设你正在使用本机的DOM元素的工作,JavaScript方法.appendChild将满足您的需求。

在本地JavaScript,document.getElementByID可能是在获得的DOM元素你最好的选择,所以......

var target = document.getElementById('target') 
document.getElementById('to_be_moved').appendChild(target) 
6
$("target").insert($("to_be_moved").remove()); 

或者,更可读的方式...

var moveIt = $("to_be_moved").remove(); 
$("target").insert(moveIt); 
+0

我有一个问题。那么“to_be_moved”属性,值等呢?它是否仍然与移动之前一样(如克隆原生DOM方法)? – iroel 2010-07-28 21:35:59

+0

@iroel是的,['remove'](http://www.prototypejs.org/api/element/remove)方法将元素从DOM中取出并返回。它不是一个克隆,它是* *元素。 – 2010-07-28 23:28:40

+1

你甚至不需要使用'.remove()'。你可以插入新的位置。 – Josh 2010-07-29 14:31:25