2011-11-24 25 views
6

que tienen un elemento div comoMover un elemento DOM con append()?

<div id="move">Something</div> 

... que me gustaría movimiento de una posición a otra en el DOM. ¿Puedo hacer esto con appendTo(), así:

$('#move').fadeOut(500, function() { 
    $(this).appendTo('#another-container').fadeIn(500); 
}); 

... o será ésta duplicarlo?

Si está siendo duplicado, habría dos elementos con el mismo id en el DOM. ¿Cómo podría evitar esto?

Respuesta

13

Sí, el método appendTo mueve elementos del árbol DOM. Si desea copiar un elemento, se usa .clone().

Ejemplo:

Body: <div> 
      <a>Test</a> 
     </div> 
     <span></span> 
jQuery code: 
    $("a").appendTo("span"); 

After: <div></div> 
     <span> 
      <a>Test</a> 
     </span> 
+0

Gracias! Aceptaré tu respuesta en 11 minutos :) – bobsoap

2

I tomaron directamente de documentación jQuery http://api.jquery.com/append/

$(".container").append($("h2")); 

"Si un elemento seleccionado de esta manera se inserta en una sola ubicación en el DOM en otras partes, se moverá en el destino (no clonado): "

0

Puede hacerlo con .append o .after o métodos similares.

<ul class="list1"> 
    <li>You wanted to move this element!</li> 
    <li>Element 2</li> 
    <li>Element 3</li> 
</ul> 

<ul class="list2"> 
    <li></li> 
    <li>Element 2</li> 
    <li>Element 3</li> 
</ul> 

<button onclick="moveIt()">Move element</button> 

Así que el código para mover la primera .li de .list1 a .list2 será:

function moveIt() { 
    var elementToBeMoved = $(".list1 li:first"); 
    $(".list2 li:first").append(elementToBeMoved); 
} 

Working pen

Cuestiones relacionadas