2013-04-02 31 views
6

我注意到以下几点:HTML元素的ID是否始终可以从窗口对象中获得?

<div id='myDiv'>...</div> 

<script> 
    myDiv.style.color = 'red'; // I can access the object. 
<script> 

之前实现这一点,我总是使用下列内容:

var x = document.getElementById('myDiv'); 
x.style.color = 'red'; 

我很困惑。第二种方法有什么意义?第一种方法是否始终有效?

+1

如果我正确地记得第一种方法只适用于IE和某些元素,第二种方法是正确的和交叉浏览器的方式 – frisco

+0

我猜想第二种方法实际上符合标准,第一种方法是从前一个时代遗留下来,你可能不应该总是依靠它。 –

+0

使用第二种方法,您可以轻松地在各种其他场景中重用变量“x”。 –

回答

2

是否始终可以从窗口对象获取html元素的ID?

不是。这是一个非标准的微软主义,一些其他浏览器采用了兼容性原因。它很容易出现命名空间冲突,并且不能完全跨浏览器兼容:不要这样做。

第二种方法的要点是什么?

它是标准的,支持良好的跨浏览器(也是跨语言)。

+1

[HTML5将此行为添加到标准中。](http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-访问 - 上的窗口对象) – josh3736

相关问题