2011-09-20 33 views
13

可能重複:
document.getElementById(「someId」) Vs. someIddocument.getElementById('mybox')和mybox有什麼區別?

例如我有id="mybox"屬性的元素,有與document.getElementById('mybox')mybox直接調用其之間的任何差異,正如我看到兩個工作在相同大多數瀏覽器?該的jsfiddle顯示活生生的例子http://jsfiddle.net/usmanhalalit/TmS3k/

如果沒有差異,那麼爲什麼document.getElementById('mybox')是如此受歡迎,它是一個不好的做法,直接調用mybox

+0

另請參見[DOM樹元素全局變量在這裏?](http://stackoverflow.com/q/3434278/1048572) – Bergi

回答

21

一些瀏覽器在一些渲染模式將創建一個全局變量與一個id每個元素。

這是非標準的,不會到處工作,絕對不能依賴。

+0

好的答案,謝謝:) – Usman

6

他們不「都工作一樣」。 IE引入了將元素ID變成全局變量,其他瀏覽器在一定程度上覆制它,但不完全支持它。這被認爲是一個非常糟糕的主意,只是不這樣做。

+0

+1謝謝,但我只能選擇一個答案。 – Usman

4

mybox.value在大多數情況下不起作用。我相信IE是唯一支持它的瀏覽器(也只有它的一些版本)。在我的Firefox瀏覽器中,控制檯中出現mybox not defined錯誤消息。

+0

+1謝謝,但我只能選擇一個答案。 – Usman