2010-07-28 18 views
11

Cómo mover el elemento HTML a otro elemento. Tenga en cuenta que, no me refiero a mover la posición del elemento. Considere este código HTML:Cómo mover el elemento HTML

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

quiero mover "to_be_moved" a "blanco" por lo "objetivo" tiene hijo "to_be_moved" ahora. Así, el resultado debe ser similar a esto:

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

He buscado en Google (especialmente el uso de marco prototipo), pero todo lo que tengo es la posición en movimiento, no lo que yo quiero. Gracias antes.

Respuesta

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

¿Qué hay de "to_be_moved"? ¿Todavía está en su lugar original? – iroel

+0

No debería ser. ¿Intentalo? –

+2

¿Eh? El elemento principal del elemento cambiará, por lo que se "moverá". Sin embargo, el nodo no se "elimina" porque ahora está en otra parte del árbol DOM. –

0

Suponiendo que está trabajando con elementos DOM nativos, el método de Javascript .appendChild se adapte a sus necesidades.

En Javascript nativo, document.getElementByID es probablemente la mejor opción para conseguir el elemento DOM, así que ...

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

O, para una manera más fácil de leer ...

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

Tengo una pregunta. ¿Qué pasa con la propiedad "to_be_moved", los valores, etc.? ¿Todavía tiene lo mismo que antes del movimiento (como el método de DOM nativo de clonación)? – iroel

+0

@iroel Sí, el método ['remove'] (http://www.prototypejs.org/api/element/remove) saca el elemento del DOM y lo devuelve. No es un clon, es * el * elemento. –

+1

Ni siquiera necesita usar '.remove()'. Usted puede simplemente insertar en la nueva posición. – Josh

Cuestiones relacionadas