Bea*_*com 3 javascript dom reference
有人能告诉我调用id ="myDomObect"的HTML元素之间的区别吗?:
var myObj = document.getElementById('myDomObect');
Run Code Online (Sandbox Code Playgroud)
&
var myObj = myDomObect;
Run Code Online (Sandbox Code Playgroud)
使用第一个表单或 jQuery等包装器.第二种形式,
var myObj = myDomObect;
Run Code Online (Sandbox Code Playgroud)
转换为
var myObj = window["myDomObect"];
Run Code Online (Sandbox Code Playgroud)
这是"有效的",因为旧的黑客将ID作为全球窗口属性暴露出来(IIRC从一开始就是一种错误),因此我们仍然很幸运20年后的行为......是的,它会起作用在最新的Chrome中.
然而,这样的速记应不用于多种原因:
它不会像最初用"严格模式"那样工作(但它可以用于第二种形式)
它不传达操作 - 即请求/获取DOM元素(通过ID).
它不适用于与窗口属性冲突的ID; 例如.<div id=history></div>如果以这种方式访问将导致"意外行为".(这不会影响正确使用var函数中的局部变量的getElementById代码.)
当文档中存在重复的ID(其行为没有定义被允许); getElementById的行为已由DOM 4 编写:"getElementById(elementId)方法必须以树的顺序返回第一个元素[带有ID]."
也可以看看:
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |