簡體   English   中英

僅通過ID引用Javascript中的HTML元素

[英]Referring to HTML elements in Javascript by just their ID

顯然,HTML元素的id被加載到HTML頁面上Javascript的全局命名空間中。 因此,如果我有類似HTML的內容:

<p id="mypara">Hello</p>

我可以像這樣運行Javascript:

mypara.innerText += " world";

結果是該段落在Windows的IE9和Chrome中將“ Hello world”作為其文本。 與標准相比,這似乎是引用HTML元素更方便的方法

document.getElementById("mypara").innerText += " world";

據我所知,缺點似乎是您不能給HTML元素ID提供Javascript關鍵字(看起來並不那么糟糕),並且您的全局名稱空間受到了更多的污染。

這種方法還有其他問題嗎? 是否有文檔描述瀏覽器何時/如何完成全局名稱空間的填充? 有怪癖或陷阱嗎? 有沒有人做過瀏覽器兼容性測試?

早期的IE引入了制作元素ID和命名元素全局引用的做法。 它從未被標准化,被認為是一個非常糟糕的主意。

其他瀏覽器為該做法提供了各種級別的支持,以使其與為IE編寫的網站兼容,但是通常,為了防止其使用,支持很少(甚至在某種程度上是隱藏的)。 某些瀏覽器僅在怪癖模式或某些DOCTYPE中支持它。

仍然認為這是一個非常糟糕的主意,請不要使用它。 使用適當的DOM方法,不要依賴於這種瀏覽器怪癖。

我會擔心腳本在較舊的瀏覽器中運行。 例如,此小提琴在Firefox 3中不起作用。

http://jsfiddle.net/rrSwW/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM