JavaScript document.getElementById(“id”) 和元素 id 属性

JavaScript document.getElementById(“id”) and element id attribute

我有:

<div id="myDiv1"></div>
<div id="myDiv2"></div>

在JavaScript中,我可以设置div innerHTML 写:

myDiv1.innerHTML = "myDiv1, Hi!"

document.getElementById("myDiv2").innerHTML = "myDiv2, Hi!"

既然可以简单地使用元素 Id,为什么还要使用 document.getElementById?这是每次都有效还是仅在某些特殊情况下(例如简单示例)有效?

谢谢,

麦克

Why should I use document.getElementById when I can simply use element Id ?

为了避免冲突。浏览器上的全局命名空间 令人难以置信 拥挤,各种各样的东西都被扔在那里,包括(如您所见)引用任何带有 id 的元素的全局变量(所以-称为 "automatic globals").

相比之下,getElementById只做它所说的,通过它的id找到一个元素;它更受限制。 (除了旧版 IE 中的错误,它还会查看具有 name 属性的元素。)

当你写

myDiv1.innerHTML = "myDiv1, Hi!"

你调用的是window对象,所以实际调用是这样的

window.myDiv1.innerHTML = "myDiv1, Hi!"

此行为现已弃用并应避免。相反,我们应该使用

document.getElementById`