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`
我有:
<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`