首頁 >web前端 >js教程 >為什麼不鼓勵透過全域屬性存取 DOM 元素?

為什麼不鼓勵透過全域屬性存取 DOM 元素?

DDD
DDD原創
2024-12-23 05:40:11289瀏覽

Why is Accessing DOM Elements via Global Properties Discouraged?

全域屬性和具有ID 的DOM 樹元素

在Internet Explorer 和Chrome 等Web 瀏覽器中,可以透過全域物件存取DOM 樹中具有指定ID 的元素使用它們的ID 作為變數名稱或視窗物件的屬性。例如,可以使用以下方式取得ID 為「example」的元素:

alert(example.innerHTML); // Alerts "some text".

alert(window["example"].innerHTML); // Alerts "some text".

但是,由於多種原因,不鼓勵這種行為:

  • 與本機屬性衝突:命名元素成為文件物件的屬性,這可能與它的屬性衝突實際屬性。 IE 也透過添加命名元素作為視窗物件的屬性來進一步加劇這種情況,這可能會與現有成員發生衝突。
  • 全域範圍可見性: 這些元素作為類似全域的變數可見。雖然真正的全域變數會在程式碼中隱藏它們,但在對具有衝突名稱的全域變數進行賦值時省略 var 宣告可能會無意中更改元素的值。
  • 缺乏跨瀏覽器的支援:僅 IE、Chrome ,而 Opera 最初支援這種行為,導致它在不同平台上不一致。
  • 棄用HTML5: HTML5 規範已標準化此行為,並將其擴展到 Firefox。然而,依賴在視窗上可見或作為全域變數的命名元素仍然被認為是不好的做法。

相反,最好使用標準化的 getElementById 方法從 DOM 樹中檢索元素,如下所示它得到廣泛支持並且不那麼含糊。

以上是為什麼不鼓勵透過全域屬性存取 DOM 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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