"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como evitar elementos extras ao percorrer itens selecionados com document.querySelectorAll?

Como evitar elementos extras ao percorrer itens selecionados com document.querySelectorAll?

Publicado em 13/12/2024
Navegar:376

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

Percorrendo os elementos selecionados com document.querySelectorAll

Problema:
Ao tentar percorrer os elementos selecionados usando document.querySelectorAll, a saída inclui informações adicionais e irrelevantes itens.

Exemplo:

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

Saída:












10
item()
namedItem()

O problema surge porque document.querySelectorAll retorna um NodeList, que é um objeto semelhante a um array. No entanto, NodeList não oferece suporte a métodos de array como forEach.

Solução:

Para percorrer corretamente os elementos selecionados, converta o NodeList em um array. Existem várias maneiras de fazer isso:

  1. Spread Syntax (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. Loop sobre índices de nós:

    const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i 
Declaração de lançamento Este artigo foi reimpresso em: 1729429999 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3