NodeList
🔍 ¿Qué es un NodeList? Un NodeList es una colección de elementos del DOM que se obtiene al usar métodos como document.querySelectorAll(cssSelector). 📊 Similitudes con Arrays Aunque un NodeList no
const paragraphs = document.querySelectorAll("p");
console.log(paragraphs.length); // 2
console.log(paragraphs[0]); // <p>First paragraph</p>
console.log(paragraphs[1]); // <p>Second paragraph</p>
paragraphs.forEach(paragraph => {
console.log(paragraph); // Muestra cada párrafo uno por uno
});
🚫 Limitaciones de NodeList
Un NodeList no soporta todos los métodos de los arrays:
❌
.filter()
no funciona: No puedes usar métodos como.filter()
directamente en un NodeList.
📝 Obteniendo el texto de los elementos
Para obtener el texto de cada elemento en un NodeList, debes iterar sobre los elementos y acceder a la propiedad .textContent
de cada uno.
💡 Ejemplo:
const paragraphs = document.querySelectorAll("p");
paragraphs.forEach(paragraph => {
console.log(paragraph.textContent); // Muestra el texto de cada párrafo
});
❗ Importante:
No puedes llamar paragraphs.textContent
directamente en el NodeList, ya que esta propiedad no existe en el objeto NodeList, solo en los elementos individuales.
🔍 ¿Por qué convertir un NodeList a Array?
Sabemos que un NodeList solo soporta .length
y .forEach()
. Pero, ¿qué pasa si necesitas usar métodos como .map()
o .filter()
? Aunque no es común, es útil poder aplicar métodos de array en un NodeList.
🛠 Cómo convertir un NodeList a Array
Puedes convertir un NodeList en un array utilizando la sintaxis de propagación (...
).
💡 Ejemplo básico:
const divs = document.querySelectorAll("div"); // NodeList
const items = [...divs]; // Array
💡 Ejemplo en una sola línea:
const items = [...document.querySelectorAll("div")]; // Array
💡 Ejemplo de filtro:
const links = document.querySelectorAll("a");
const loginLinks = [...links].filter(link => link.textContent === "Login");
console.log(loginLinks); // Array de 2 enlaces con "Login" como textContent
Última actualización