首頁  >  文章  >  web前端  >  使用 document.querySelectorAll 循環選定的項目時如何避免額外元素?

使用 document.querySelectorAll 循環選定的項目時如何避免額外元素?

Patricia Arquette
Patricia Arquette原創
2024-10-20 21:14:02184瀏覽

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. NodeList,它是一個類似陣列的物件。但是,NodeList 不支援 forEach 等數組方法。

解決方案:
  1. 要正確循環遍歷所選元素,請將 NodeList 轉換為陣列。有幾種方法可以做到這一點:

    const divs = [...document.querySelectorAll('div')];
    divs.forEach((div) => {
      // Do something with each div
    });
  2. 擴充語法(ES2015):
  3. const divs = Array.from(document.querySelectorAll('div'));
    divs.forEach((div) => {
      // Do something with each div
    });
  4. Array.from():
  5. const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i < checkboxes.length; i++) {
      // Do something with each checkbox
    }
  6. 循環節點索引:
循環節點索引:

以上是使用 document.querySelectorAll 循環選定的項目時如何避免額外元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn