首頁 > web前端 > js教程 > 為什麼 `forEach` 不能直接在 `HTMLCollection` 上運作?

為什麼 `forEach` 不能直接在 `HTMLCollection` 上運作?

Barbara Streisand
發布: 2024-12-01 03:01:09
原創
461 人瀏覽過

Why Doesn't `forEach` Work Directly on `HTMLCollection`?

使用Array.forEach 迭代HTMLCollection

在這種困境中,開發人員嘗試使用document.getElementsByClassName("myclass").forEach 迭代到錯誤,指出「.forEach 不是

理解HTMLCollection

解決此錯誤的關鍵在於理解getElementsByClassName 傳回結果的性質。微妙但重要的區別。轉換為陣列

要利用強大的forEach 方法,必須先將HTMLCollection 放入陣列中。 call:

使用[].forEach.call:

var els = document.getElementsByClassName("myclass");

Array.prototype.forEach.call(els, function(el) {
  // Do stuff here
  console.log(el.tagName);
});
登入後複製

使用Array.from (ES6):

[].forEach.call(els, function (el) {...});
登入後複製

透過將HTMLCollection 轉換為數組,可以轉換為數組利用大量的陣列方法(包括forEach)來有效率地處理和操作DOM 元素。

以上是為什麼 `forEach` 不能直接在 `HTMLCollection` 上運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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