Me gustaría mover un elemento DIV dentro de otro. Por ejemplo, quiero mover esto (incluyendo todos los hijos):
<div id="source">
...
</div>
dentro de esto:
<div id="destination">
...
</div>
para que tenga esto:
<div id="destination">
<div id="source">
...
</div>
</div>
Puede utilizar la función appendTo
(que añade al final del elemento):
$("#source").appendTo("#destination");
También puede utilizar la función prependTo
(que añade al principio del elemento):
$("#source").prependTo("#destination");
Ejemplo:
$("#appendTo").click(function() {
$("#moveMeIntoMain").appendTo($("#main"));
});
$("#prependTo").click(function() {
$("#moveMeIntoMain").prependTo($("#main"));
});
#main {
border: 2px solid blue;
min-height: 100px;
}
.moveMeIntoMain {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main">main</div>
<div id="moveMeIntoMain" class="moveMeIntoMain">move me to main</div>
<button id="appendTo">appendTo main</button>
<button id="prependTo">prependTo main</button>
Si el div
donde quieres poner tu elemento tiene contenido dentro, y quieres que el elemento se muestre después del contenido principal:
$("#destination").append($("#source"));
Si el div
donde quieres poner tu elemento tiene contenido dentro, y quieres que el elemento se muestre antes del contenido principal:
$("#destination").prepend($("#source"));
Si el div
donde quieres poner tu elemento está vacío, o quieres reemplazarlo por completo:
$("#element").html('<div id="source">...</div>');
Si quieres duplicar un elemento antes de cualquiera de los anteriores
$("#destination").append($("#source").clone());
// etc.