我有:
<div id="myDiv1"></div>
<div id="myDiv2"></div>
在JavaScript中,我可以通过编写:
来设置div innerHTMLmyDiv1.innerHTML = "myDiv1, Hi!"
或
document.getElementById("myDiv2").innerHTML = "myDiv2, Hi!"
当我可以简单地使用元素ID时,为什么要使用document.getElementById?这是每次都有效还是仅在某些特殊情况下(如简单样本)?
感谢,
麦克
答案 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`