2012-01-03 19 views
36

enter image description herejQuery clon div y añadirlo después div específica

Hola chicos, a partir de la imagen de arriba, quiero clonar el div con id # car2 y añadirlo después de la última div con id comenzar con el coche, en este ID de ejemplo # car5. como puedo hacer eso? Gracias.

Este es mi código try:

$("div[id^='car']:last").after('put the clone div here'); 

Respuesta

104

Puede utilizar clon, y luego ya que cada div tiene una clase de car_well puede utilizar InsertAfter para insertar después de la último div.

$("#car2").clone().insertAfter("div.car_well:last"); 
+0

I Estoy tratando de usar el mismo para agregar múltiples archivos adjuntos a un formulario. ¿Puede explicar cómo eliminar este div con una función neutral (así que, básicamente, tendría 1 función para agregar div y otra para eliminar el último div) –

+0

Esto funciona bien, pero html() con una función anónima es potencialmente más potente dependiendo de la aplicación https://stackoverflow.com/questions/8707756/jquery-clone-div-and-append-it-after-specific-div#answer-47063071 – plaidcorp

8

probar esto

$("div[id^='car']:last").after($('#car2').clone()); 
+0

me gusta - http : //jsfiddle.net/VgwKt/ – mrtsherman

+0

¿Y cómo aumento el número de identificación al automóvil 6 después del clon? – Mikeys4u

+0

@ Mikeys4u no estaba seguro de la parte superior de mi cabeza, encontré este hilo sobre el mismo tema http://stackoverflow.com/questions/10126395/how-to-jquery-clone-and-change-id – mcgrailm

0

Esto funciona muy bien si una copia directa está en orden. Si la situación lo requiere la creación de nuevos objetos a partir de plantillas, por lo general envuelvo el div plantilla en un div de almacenamiento oculto y usar HTML de jQuery() en conjunción con el clon() aplicar la siguiente técnica:

<style> 
#element-storage { 
    display: none; 
    top: 0; 
    right: 0; 
    position: fixed; 
    width: 0; 
    height: 0; 
} 
</style> 

<script> 
$("#new-div").append($("#template").clone().html(function(index, oldHTML){ 
    // .. code to modify template, e.g. below: 
    var newHTML = ""; 
    newHTML = oldHTML.replace("[firstname]", "Tom"); 
    newHTML = newHTML.replace("[lastname]", "Smith"); 
    // newHTML = newHTML.replace(/[Example Replace String]/g, "Replacement"); // regex for global replace 
    return newHTML; 
})); 
</script> 

<div id="element-storage"> 
    <div id="template"> 
    <p>Hello [firstname] [lastname]</p> 
    </div> 
</div> 

<div id="new-div"> 

</div>