通过它访问HTML元素's id DIRECTLY-这里发生了什么
Accessing an HTML-element by it's id DIRECTLY - What happens here?
我偶然发现了这种行为:
我可以通过HTML属性"id"访问JavaScript中的HTML元素。通常我使用getElementById。
我甚至可以写访问它的属性。
制作了这个演示并在Firefox、Safari和Chrome中试用。它在任何地方都有效。
alert(test1.innerHTML);
test1.innerHTML = 'Foobar';
alert(test1.innerHTML);
<div id="test1">Demo 123</div>
所以,说实话:我感到惊讶和困惑,因为我还不知道这是可能的。
此外,我问自己:当我可以直接获取和设置元素时,getElementById有什么意义?当然:我知道发明者并没有在没有任何意图的情况下采用这种方法。
有人能解释一下为什么我可以通过id属性访问元素吗?
为什么要使用getElementById?
据我记忆所及,这种行为是由Internet Explorer引入的。过了一段时间,其他供应商把它捡了起来。我认为它从未被标准化,因此可能随时停止运行。此外,如果您的代码中有一个变量test1,它将覆盖控件定义的test1。
值得一提的是,在某些IE版本中,尝试创建与元素id同名的全局变量失败。David Flanagan的《JavaScript:最终指南》一书也指出,如果在创建元素时变量已经存在于全局范围中,那么该变量将不会被具有相同id的元素覆盖。
关于这个主题的更多内容:是否有一个规范要求元素的id成为全局变量?这里:带有id的DOM树元素会成为全局变量吗?
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- difference between '$(<%= DDL.ID %>) & $('
- 使用Javascript获取所选选项ID
- 根据id将json数组组合为一个json数组
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 对id以某个字符串开头的元素进行计数
- 如果元素's的ID以数字开头
- 通过id和class属性获取元素
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 使用当前日期生成随机id
- Javascript-ID冲突的几率
- Href:当前DIV中的目标ID
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Javascript复选框函数:;缺少:在属性id之后"
- Twitter引导程序Typeahead-Id&标签
- 如何与特定ID交谈
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何在速度模板中获取LiferayPortlet实例id
- 谷歌地图可以't添加正确的标记ID
- 通过它访问HTML元素's id DIRECTLY-这里发生了什么