2010-07-28 107 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