He estado tratando de aplicar newText.innerText a oldText.innerText y solo toma el último elemento en newText y lo aplica a todo el oldText. He intentado agregar el índice y la matriz al ciclo y ejecutar el código después de agregarlos como un contador de números pero aún así no funcionó, también intenté definir un nuevo elemento y asignarle el valor newText pero aún así no funcionó
<body> <h3 class="oldText">oldText</h3> <h3 class="oldText">oldText</h3> <h3 class="oldText">oldText</h3> <h3 class="oldText">oldText</h3> <h3 class="oldText">oldText</h3> <h3 class="newText">newText1</h3> <h3 class="newText">newText2</h3> <h3 class="newText">newText3</h3> <h3 class="newText">newText4</h3> <h3 class="newText">newText5</h3> <script> var oldText = document.querySelectorAll('.oldText') var newText = document.querySelectorAll('.newText') oldText.forEach((oldT) => { newText.forEach((newT) => { oldT.innerText = newT.innerText }) }) </script> </body> </html>mientras trato de hacer que el texto antiguo tenga el mismo texto interno
No deberías tener un bucle anidado. Simplemente recorra cada elemento oldText y asigne su .innerText al .innerText del elemento newText correspondiente:
var oldText = document.querySelectorAll('.oldText') var newText = document.querySelectorAll('.newText') oldText.forEach((oldT, i) => { oldT.innerText = newText[i].innerText }) i es el índice en la matriz newText .
En lugar de usar un bucle foreach, simplemente puede usar un bucle for como este:
var oldText = document.querySelectorAll('.oldText') var newText = document.querySelectorAll('.newText') for (var i = 0; i < oldText.length; i++){ oldText[i].innerText = newText[i].innerText; }