document.querySelectorAll을 사용하여 선택한 항목을 반복할 때 추가 요소를 방지하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-20 21:14:02
원래의
181명이 탐색했습니다.

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

document.querySelectorAll을 사용하여 선택한 요소를 반복

문제:
선택한 요소를 반복하려고 할 때 document.querySelectorAll을 사용하면 출력에 관련 없는 추가 항목이 포함됩니다.

예:

var checkboxes = document.querySelectorAll('.check');
for( i in checkboxes) {
  console.log(checkboxes[i]);
}
로그인 후 복사

출력:

<input id="check-1" class="check" type="checkbox" name="check">
<input id="check-2" class="check" type="checkbox" name="check">
<input id="check-3" class="check" type="checkbox" name="check">
<input id="check-4" class="check" type="checkbox" name="check">
<input id="check-5" class="check" type="checkbox" name="check">
<input id="check-6" class="check" type="checkbox" name="check">
<input id="check-7" class="check" type="checkbox" name="check">
<input id="check-8" class="check" type="checkbox" name="check">
<input id="check-9" class="check" type="checkbox" name="check">
<input id="check-10" class="check" type="checkbox" name="check" checked="">

10
item()
namedItem()
로그인 후 복사

문제는 document.querySelectorAll이 배열과 유사한 객체인 NodeList를 반환하기 때문에 발생합니다. 그러나 NodeList는 forEach와 같은 배열 메서드를 지원하지 않습니다.

해결책:

선택한 요소를 올바르게 반복하려면 NodeList를 배열로 변환하세요. 이를 수행하는 방법에는 여러 가지가 있습니다.

  1. 확산 구문(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. 노드 인덱스 반복:

    const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i < checkboxes.length; i++) {
      // Do something with each checkbox
    }
    로그인 후 복사

위 내용은 document.querySelectorAll을 사용하여 선택한 항목을 반복할 때 추가 요소를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!