首頁  >  文章  >  web前端  >  為什麼 querySelectorAll 上的 forEach 在 Microsoft 瀏覽器中的行為不符合預期?

為什麼 querySelectorAll 上的 forEach 在 Microsoft 瀏覽器中的行為不符合預期?

DDD
DDD原創
2024-10-20 06:38:30957瀏覽

Why is forEach on querySelectorAll Not Behaving as Expected in Microsoft Browsers?

querySelectorAll 上的forEach 在Microsoft 瀏覽器中的行為不符合預期:全面檢查和解決方案

Internet Explorer 和Edge 瀏覽器為使用forEach() 的開發人員帶來了獨特的挑戰querySelectorAll 結果上的方法。雖然該方法在大多數其他瀏覽器中得到了很好的支持,但 IE 和 Edge 由於使用了 DOM 方法和集合屬性而遇到了困難。

NodeList 和 HTMLCollection 區別

與類似陣列的 NodeList 實例不同HTMLCollection 實例表示匹配元素的靜態快照,是即時集合,其變更會即時反映。 forEach() 方法最近才在 NodeList 中實現,而 HTMLCollection 不支援它。但是,這兩個集合都是可迭代的,使它們能夠擴展為數組或使用 for-of 系統或 Symbol.iterator 屬性進行迭代。

Polyfilling forEach() 和Iterable Behavior

To為了解決NodeList 中缺少forEach() 的問題,可以實作一個簡單的Polyfill:

同樣,如果瀏覽器缺少NodeList 或HTMLCollection 上的Symbol.iterator 屬性,也可以實現Polyfill:

結論

透過了解NodeList 和HTMLCollection 之間的差異,並利用polyfill 的強大功能,開發人員可以確保forEach() 方法在所有瀏覽器中無縫運行,包括Internet Explorer 和邊緣。提供的程式碼範例使開發人員能夠輕鬆實現這些填充並恢復 forEach() 在 Microsoft 瀏覽器中的預期行為。

以上是為什麼 querySelectorAll 上的 forEach 在 Microsoft 瀏覽器中的行為不符合預期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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