Tengo una página con la mayor parte del contenido generado a partir de un archivo XML. El contenido generado es una tabla en la que la primera celda de cada fila es un elemento desplegable:
<details><summary>...</summary>...</details> Estoy tratando de cambiar el contenido de algunos <summary> en enlaces a medida que se generan. El contenido del <summary> puede ser texto o un <img> y texto. Dado que appendChild no me permite agregar un NodeList , mi alternativa para esto fue recorrer los elementos secundarios <summary> y agregarlos al enlace, luego agregar el enlace a un reemplazo <summary> . Desafortunadamente, el ciclo for nunca accedió al segundo hijo.
for (var j = 0; j < curSummary.childNodes.length; j++) { // ... } Verifiqué que curSummary.childNodes.length es en realidad 2 pero el ciclo solo se ejecutó una vez para cada <summary> . Poner una alert para mostrar el valor de la variable de bucle mostró que solo era 0 .
alert('there are' + curSummary.childNodes.length + ' nodes'); for (var j = 0; j < curSummary.childNodes.length; j++) { alert('appending child node ' + j + ' of ' + curSummary.childNodes.length); } Además de omitir el texto, el código funcionó. El resumen apareció con <img> como enlace. Para que quede claro, tanto la imagen como el texto se muestran cuando no hay un enlace.
Y no, no estoy cambiando el valor de la variable de bucle ni emitiendo un "pausa" en ninguna parte del bucle.