我可以在JavaScript中使用HTML元素的id作为变量吗?

at.*_*at. 6 html javascript html5

无意中,我注意到我可以id在JavaScript代码中使用HTML元素.所以不是这样的:

var myCanvas = document.getElementById('myCanvas');
myCanvas.width = '600';
myCanvas.height = '400';
Run Code Online (Sandbox Code Playgroud)

我甚至可能根本没有第一行,因为变量myCanvas显然已经存在!

myCanvas.width = '600';
myCanvas.height = '400';
Run Code Online (Sandbox Code Playgroud)

这很好,但我能依靠它吗?这是我在所有现代浏览器中可以预期的正常行为吗?我不关心IE9之前的任何浏览器.

Rob*_*obG 6

在浏览器脚本的早期,IE 将 ID 和 NAME 属性值放入引用相关元素的全局对象的属性中。这被广泛认为是一件“坏事”,但为了与 IE 兼容而被大多数其他浏览器复制(当时大多数网站几乎都是专门为 IE 编写的,IE 拥有大约 95% 的用户份额)。

\n\n

然后是开放标准和支持它们的共同努力。现在没有任何人使用它,尽管可能所有正在使用的浏览器仍然支持它。

\n\n

请注意,声明的同名全局变量优先于同名或 ID 元素。

\n