Foros del Web » Programando para Internet » Javascript »

Clonar varios elementos y mostrarlos

Estas en el tema de Clonar varios elementos y mostrarlos en el foro de Javascript en Foros del Web. Hola, Estoy teniendo varios problemas con el codigo porque a veces consigo clonar los elementos pero no se me muestran o viceversa. Lo que yo ...
  #1 (permalink)  
Antiguo 06/07/2014, 12:56
Avatar de Nerissa17  
Fecha de Ingreso: julio-2014
Ubicación: Londres
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Clonar varios elementos y mostrarlos

Hola,

Estoy teniendo varios problemas con el codigo porque a veces consigo clonar los elementos pero no se me muestran o viceversa.
Lo que yo quiero es clonar todos los elementos de un div y mostrarlos en el body,pero si pongo el nombre de donde he sacado los elementos solo me muestra eso.... alguna idea?
Aqui esta el codigo que estoy usando:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3.     var pictures0_1 = document.createElement("div");
  4.     pictures0_1.id = "pictures0_1";
  5.     $("#pictures0").clone().appendTo("#pictures0_1");
  6.     $("#pictures:first").appendTo("#pictures:second");
  7.     $("#pictures0").remove();
  8.         // Con este prepend me muestra el codigo que quiero,pero yo no quiero tener que escribir el codigo porque la idea es que el solo coja el codigo que quiero mostrar con el clone,sin tener que escribirselo
  9.     $("#pictures2").prepend("<div id='pictures0_1'><img class='type1' src='pictures/pic2.jpg' /><img class='type1' src='pictures/pic3.jpg' /><img class='type1' src='pictures/pic4.jpg' /></div>");
  10.  
  11. });

Y este es el div del body que quiero clonar:

Código HTML:
Ver original
  1. <div id="pictures0">
  2.         <img class="type1" src="pictures/pic2.jpg" />
  3.         <img class="type1" src="pictures/pic3.jpg" />
  4.         <img class="type1" src="pictures/pic4.jpg" />
  5.     </div>

Realmente me da igual usar javascript o jquery,pero como puedo elegir creo que seria mas sencillo y rapido por el jquery,pero si se os ocurre una solucion con javascript tambien me vale!

Gracias por pasaros!
  #2 (permalink)  
Antiguo 06/07/2014, 13:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Clonar varios elementos y mostrarlos

En JavaScript existe el método cloneNode, el cual realiza lo mismo que el método clone de jQuery.

Código Javascript:
Ver original
  1. var clonar = function(elemento, id){
  2.         var nuevo = elemento.cloneNode(true);
  3.         nuevo.id = id;
  4.         document.body.appendChild(nuevo);  
  5.     };
  6.  
  7. clonar(document.getElementById("pictures0"), "pictures0_1");

El parámetro booleano true se coloca para indicarle al método que debe de clonar tanto al elemento en cuestión como a su contenido. Los argumentos a enviar a la función son el elemento a clonar y el id que deseas asignar al elemento clonado, de este modo, puedes reutilizar la función cuantas veces quieras.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/07/2014, 13:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Clonar varios elementos y mostrarlos

buenas...
hablando desde mi ignorancia en jquery, seguramente estás usando mal el jquery. por lo que puedo interpretar, el código hace esto:
· crear un elemento DIV con ID #pictures0_1
· clonas el DIV #pictures0 y se lo agregas al elemento #pictures0_1
· agregas la primera coincidencia (:first) del elemento #pictures a la segunda coincidencia (:second) de #picutres. con esto se entiende que en el html existe mas de un #picturesX_X
· y finalmente tienes un prepend con un código html.

cuando haces clone, estas clonando el elemento perse junto con su contenido. no entiendo que exactamente quieres clonar, si todos los #picturesX o uno en particular. en todo caso, en puro js, harías algo asi:

Código:
document.body.appendChild( // agregar al final del BODY;
document.getElementById("pictures0").cloneNode(true) // true para clonar tambien los elementos hijos del principal;
);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:54.