文件["某些名字"]真的有什么作用?

ILo*_*Git 4 html javascript document

这段代码

<img name="n1" src="" />
<h1 name="n2">a header</h1>
<script>
document["n1"].src = "http://x.y/picture.jpg";
document["n2"].innerHTML = "Boo";
</script>
Run Code Online (Sandbox Code Playgroud)

<img><h1>标签不同的东西.图像src按照预期的document["n1"].src线条改变.但是标题innerHTML没有像预期的那样改变document["n2"].innerHTML.什么document["some string"]真的回归?

Lov*_*ing 11

在JavaScript中,object["string"]访问属性'string'object.这可以用于访问许多不同对象上的许多不同属性,就像将对象视为值的哈希映射一样.对于该document对象,默认情况下将加载某些属性,例如具有该name属性的元素.至少对于某些浏览器(我不知道哪个子集).

也就是说,该name属性不是<h1>标记的有效属性,因此文档不会将其加载到document["name"]值中.

name属性对以下元素有效:

  • <a> - HTML 4中不推荐使用的属性,HTML5中已废弃
  • <applet> - HTML5中的元素已过时
  • <button>
  • <form>- HTML 4中不推荐使用的属性,在HTML5中返回
  • <frame> - HTML5中的元素已过时
  • <iframe>
  • <img> - HTML 4中不推荐使用的属性,HTML5中已废弃
  • <input>
  • <map>
  • <meta>- 不一样的name属性
  • <object>
  • <param>- 不一样的name属性
  • <select>
  • <textarea>

对于这些元素中的每一个,如果它们具有name属性,则会将它们添加到文档中,如您所见.但是,获得这些元素的首选方法是使用document.getElementsByName()