2010-10-23 5 views
23

Voglio copiare il contenuto di un div selezionato in un altro div con jquery clone.come clonare il contenuto di un div in un altro div

cosa intendo dire quando creiamo un clone di un div con jquery (correggimi se sbaglio) dobbiamo impostare la sua posizione e creerà dinamicamente una nuova divisione che È visualizzato.

ma voglio ottenere il contenuto di un div selezionato e copiarlo su un altro pre-set div

+0

thank u tutti qui è quello che voglio veramente per accadere http://www.jsfiddle.net/pahnin/c2p54/2/ – pahnin

risposta

46
var a = $('#selector').html(); 
var b = $('#selector').html(a); 

non certo di aver capito correttamente, ma credo che sia così quello che volevi dire :)

+14

Questo potrebbe anche essere scritto:. '$ ('# SelectorDestination') html (. $ ('# selectorSource') html()); '. Evitare di dichiarare variabili. –

+8

L'unica cosa che dovremmo essere cauti è che non dovremmo duplicare gli id ​​nel codice HTML – kobe

+0

@dustin si questa è la stessa cosa ma ho pensato dal momento che mi ha chiesto di non mettere il dom "non voglio aggiungerlo da nessuna parte": è il modo migliore di procedere – Val

7

Non sono d'accordo Clone può salvare i dati senza applicare al contenuto.

Guardate qui:

http://www.jsfiddle.net/dactivo/FqffM/

var mylayer=$('.hello').clone(); 

Qui è possibile gestire il "mylayer" variabile come si desidera, e non è nel DOM.

+0

in ogni caso il metodo di val è semplice e penso che sia adatto a me – pahnin

+0

Ovviamente, html() è un ottimo metodo ma è bene sapere che clone() può essere gestito senza includere nel DOM – netadictos

+1

'Clone' copia anche l'elemento contenitore, che non penso che il @pahnin voglia. –

4

Ma non rimuoverà/nasconderà il DIV principale. Per nascondere il div principale, fare questo:

$("#from").clone().appendTo($("#to")); 
$("#from").remove(); 
+0

Penso che tu non abbia capito la mia domanda. – pahnin

4
$(".from").click(function() { 
    $(".from").removeClass("CloneMe"); 
    $("#to").html(''); 
    $(this).addClass("CloneMe"); 
    $(".CloneMe").clone().appendTo("#to"); 

}); 

È possibile aggiungere una classe al clic (o altro evento), che è il disco codificato da clonare. In questo esempio c'è un elenco di nomi di classi che contengono contenuti in stile (divs ecc.) - aggiungi la classe .CloneMe ma prima rimuovi quella classe per svuotare il div nel caso in cui l'utente selezioni un elemento diverso.) per essere sicuri di rimuovere anche qualsiasi html. Quindi applica la classe usando (this) per evitare di afferrare tutti gli elementi con quel nome di classe e infine aggiungere al div. Il risultato è che l'utente può selezionare qualsiasi oggetto con quel nome di classe e popolarlo nel contenitore. - Immagino che usare una classe per il contenitore ti consentirebbe di popolarlo in più di un posto.


+0

Perché tutto questo invece di usare la risposta diretta di @ val – pahnin