2011-11-24 29 views
6

Ho un elemento div comeSpostare un elemento DOM con append()?

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

... che mi piacerebbe mossa da una posizione all'altra nel DOM. Posso fare questo con appendTo(), in questo modo:

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

... o questo duplicarlo?

Se è in corso la duplicazione, nel DOM ci saranno due elementi con lo stesso id. Come potrei evitare questo?

risposta

13

Sì, il metodo appendTo sposta elementi dall'albero DOM. Se si desidera copiare un elemento, viene utilizzato .clone().

Esempio:

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

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

Grazie! Accetterò la tua risposta tra 11 minuti :) – bobsoap

2

ho preso direttamente dalla documentazione jQuery http://api.jquery.com/append/

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

"Se un elemento selezionato in questo modo viene inserito in un unico luogo in altre parti del DOM, verrà spostato nel target (non clonato): "

0

È possibile farlo con .append o .after o metodi simili.

<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> 

Quindi il codice a muovere i primi .li da .list1 a .list2 saranno:

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

Working pen

Problemi correlati