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

+0

Не должно быть. Попробуй? –

+2

А? Родитель элемента будет меняться, поэтому он «перемещается». Узел не «удален», потому что теперь он находится в другом месте дерева DOM. –

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

+0

@iroel Да, метод ['remove'] (http://www.prototypejs.org/api/element/remove) выводит элемент из DOM и возвращает его. Это не клон, это элемент *. –

+1

Вам даже не нужно использовать '.remove()'. Вы можете просто вставить новую позицию. – Josh

Смежные вопросы