在JS里直接用id引用html页面上的组件

偶然的机会见到在JS里直接用id定位到页面上的组件,没有使用getElementById()。而且在IE和Chrome下均好用。但是我在网上查询没有找到任何资料表明可以这么用,哪位好心人解释一下。
示例代码如下:

<script>
 function fun() {
    alert(a.value);
}
</script>

<input id="a" value="asd"/>
<input type="button" value="click" onclick="fun();"/>

从原理上来说直接用id肯定不可能。要不就是前面还有with括起来,或者自定义了函数 $('a').value之类。直接用id是不行的,不在一个域中。

我创建一个网页,就示例代码这几行,测试可以拿到。

原本就可以通过id引用到。不过不建议这样做,最好使用document.getElementById来获取对象,还有name也可以

firefox下会有警告:ID/NAME 所引用的元素位于全局范围。请使用 W3C 的标准形式 document.getElementById() 。

需要先使用document.getElementById()来获取对象,直接使用document.ID这种方式来使用,不符合标准的W3C规范,会导致在有些浏览器下是不支持的。