"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo evitar elementos adicionales al recorrer los elementos seleccionados con document.querySelectorAll?

¿Cómo evitar elementos adicionales al recorrer los elementos seleccionados con document.querySelectorAll?

Publicado el 2024-12-13
Navegar:518

How to Avoid Extra Elements When Looping Through Selected Items with document.querySelectorAll?

Recorriendo los elementos seleccionados con document.querySelectorAll

Problema:
Al intentar recorrer los elementos seleccionados Al utilizar document.querySelectorAll, el resultado incluye información adicional irrelevante. elementos.

Ejemplo:

var checkboxes = document.querySelectorAll('.check');
for( i in checkboxes) {
  console.log(checkboxes[i]);
}

Salida:












10
item()
namedItem()

El problema surge porque document.querySelectorAll devuelve una NodeList, que es un objeto similar a una matriz. Sin embargo, NodeList no admite métodos de matriz como forEach.

Solución:

Para recorrer correctamente los elementos seleccionados, convierta NodeList en una matriz. Hay varias formas de hacer esto:

  1. Sintaxis extendida (ES2015):

    const divs = [...document.querySelectorAll('div')];
    divs.forEach((div) => {
      // Do something with each div
    });
  2. Array.from():

    const divs = Array.from(document.querySelectorAll('div'));
    divs.forEach((div) => {
      // Do something with each div
    });
  3. Recorriendo índices de nodos:

    const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i 
Declaración de liberación Este artículo se reimprime en: 1729429999 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3