Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿Cómo copiar elementos sin borrar los originales?

Tengo un ciclo para duplicar una matriz y otro para agregar una copia en otro div. Ambos bucles funcionan bien, pero se eliminan los elementos originales, ¿alguien puede explicarme por qué? ¿Y cómo puedo arreglarlo? ¡Gracias!

 var mesElements = document.querySelectorAll('.element'); var catchCopy = document.querySelector('.parent_copy'); var mesElementsCopie = [] for(var j = 0; j < mesElements.length; ++j){ mesElementsCopie[j] = mesElements[j]; } for(var k = 0; k < mesElements.length; ++k){ catchCopy.appendChild(mesElementsCopie[k]); }
 <div class="parent_element" style="background-color: red;"> <div class="element">text</div> <div class="element">text</div> <div class="element">text</div> </div> <div class="parent_copy" style="background-color: green;"></div>

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En esta línea, no copia el nodo, sino que crea dos referencias al mismo nodo DOM:

 mesElementsCopie[j] = mesElements[j];

Deberías usar el métodocloneNode() :

 mesElementsCopie[j] = mesElements[j].cloneNode(true);
about 4 years ago · Juan Pablo Isaza Report

0

Aquí está el código fijo:

 var mesElements = document.querySelectorAll('.element'); var catchCopy = document.querySelector('.parent_copy'); var mesElementsCopie = [] for(var j = 0; j < mesElements.length; ++j){ mesElementsCopie[j] = mesElements[j].cloneNode(true); } for(var k = 0; k < mesElements.length; ++k){ catchCopy.appendChild(mesElementsCopie[k]); }
 <div class="parent_element" style="background-color: red;"> <div class="element">text</div> <div class="element">text</div> <div class="element">text</div> </div> <div class="parent_copy" style="background-color: green;"></div>

Estaba agregando los mismos elementos que había tomado del elemento principal, por lo que solo los estaba moviendo a la copia principal. Use .cloneNode(true) para asegurarse de que no está usando el mismo elemento.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!