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

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

Patricia Arquette
發布: 2024-10-20 21:14:02
原創
276 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板