作为 Window 对象属性的文档元素


如果在 HTML 文档中用 id 属性来为元素命名,并且如果 Window 对象没有同名属性的话,那么 Window 对象会赋予一个属性,它的名字是 id 属性的值,而对应的属性值是该文档元素的 HTMLElement 对象。这样,我们就可以使用 id 属性值作为一个全局变量。

但是如果 Window 对象已具备同名属性,就不可以这么做,同样如果在代码中声明了同名的全局变量,那么显式声明的变量会隐藏隐式的元素变量。

元素 id 作为全局变量的隐式应用是 Web 浏览器演化过程中遗留的怪癖,实际开发过程中,我们还是以 document.getElementById() 方法来获取对应的 HTMLElement 对象,不建议通过上面这种方式。

此外,如果 HTML 元素包含 name 属性的话,也会有上述表现,而且,id 元素在文档中是唯一的,name 则不然,如果多个元素拥有相同的 name 属性,具有该名称的隐式全局变量会引用一个类数组对象,这个类数组对象的元素是所有命名的元素。

nameid 属性的 <iframe> 元素是个例外,为它们隐式创建的变量不会引用表示元素自身的 Element 对象,而是引用表示 <iframe> 元素创建的嵌套浏览器窗体的 Window 对象。


点赞 取消点赞 收藏 取消收藏

<< 上一篇: 错误处理

>> 下一篇: 多窗口和窗体