2011-09-20 21 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