DOM 樹元素的 ID 屬性是否使它們成為全域屬性?
在特定的瀏覽器(如 Internet Explorer 和 Chrome)中,帶有分配的 ID 可以作為變數名稱或視窗物件的屬性進行存取。例如,
但是,這種行為並非有意為之,應被視為潛在的陷阱。正如在廣泛的答案中指出的,瀏覽器添加命名元素作為文檔物件的屬性(在IE 的情況下,也是視窗物件),這是一個糟糕的設計決策,因為它允許元素名稱與這些元素的現有屬性發生衝突。對象。
為了避免此問題,強烈建議堅持使用 document.getElementById 進行元素檢索。此方法受到廣泛支持,並且可以使您的程式碼更加清晰。如果擔心較長的名稱,您可以建立一個較短的包裝函數,而不是依賴 ID 到元素查找的意外行為。
需要注意的是,使命名元素可作為全域存取的做法類變數在 HTML5 中得到了形式化,包括將此類元素放置在文件和視窗屬性上。然而,儘管已經標準化,但最好避免這種做法,轉而採用更強大、更明確的方法,例如 document.getElementById。
以上是HTML 元素 ID 是 JavaScript 中的全域屬性嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!