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

时间:2015-02-05 10:00:40

标签: javascript dom

我有:

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

在JavaScript中,我可以通过编写:

来设置div innerHTML
myDiv1.innerHTML = "myDiv1, Hi!"

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

当我可以简单地使用元素ID时,为什么要使用document.getElementById?这是每次都有效还是仅在某些特殊情况下(如简单样本)?

感谢,

麦克

2 个答案:

答案 0 :(得分:7)

  

当我可以简单地使用元素ID时,为什么要使用document.getElementById?

避免冲突。浏览器上的全局命名空间令人难以置信地拥挤,各种各样的东西被抛弃,包括(如你所发现的)全局引用任何带有id的元素(所以 - 叫做#34;自动全局&#34;)。

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

答案 1 :(得分:1)

当你写

myDiv1.innerHTML = "myDiv1, Hi!"

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

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

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

document.getElementById` 
相关问题