Mucha gente cree que “nodo” y “elemento” son lo mismo. Se parecen, pero no son equivalentes.
<div>, <p>, <li>, etc.)Por eso este detalle cambia cómo recorres el DOM.
childNodes vs childrenCuando usas una lista como <ul>:
ul.childNodes devuelve todos los nodos hijos (incluyendo textos por saltos de línea)ul.children devuelve solo elementos HTMLDado este HTML:
childNodes contará más nodos de los que esperas: los <li>, el comentario y posibles nodos de texto.
children solo contará los tres <li>.
Si quieres contar elementos visuales, usar childNodes puede confundirte,
porque verás nodos de texto que no esperabas.
Regla práctica:
children para manipulación de interfazchildNodes cuando realmente necesites analizar todos los nodosSaber cuándo usar cada uno evita bugs típicos como:
#lista-frutas.childNodes.length y muéstralo en #resumen-nodos con textContent.children.length y muéstralo en #resumen-elementos con textContentLos dos números serán distintos. Observa la diferencia y entenderás por qué importa.
Ver la diferencia en pantalla te ahorra horas de confusión después.