此代码
<img name="n1" src="" />
<h1 name="n2">a header</h1>
<script>
document["n1"].src = "http://x.y/picture.jpg";
document["n2"].innerHTML = "Boo";
</script>
<img>
和<h1>
标记的内容有所不同。图片src
按预期由document["n1"].src
行更改。但标题innerHTML
未按document["n2"].innerHTML
行的预期更改。 document["some string"]
真正回归了什么?
答案 0 :(得分:11)
在JavaScript中,object["string"]
访问'string'
上的媒体资源object
。这可以用于访问许多不同对象上的许多不同属性,就像将对象视为值的哈希映射一样。对于document
对象,默认情况下会加载某些属性,例如具有name
属性的元素。至少对于某些浏览器(我不知道哪个子集)。
也就是说,name
attribute不是<h1>
标记的有效属性,因此文档不会将其加载到document["name"]
值。
name属性对以下元素有效:
<a>
- HTML 4中已弃用的属性,HTML5中已废弃<applet>
- HTML5中的元素已废弃<button>
<form>
- HTML 4中不推荐使用的属性returned in HTML5 <frame>
- HTML5中的元素已废弃<iframe>
<img>
- HTML 4中已弃用的属性,HTML5中已废弃<input>
<map>
<meta>
- 不同的name
属性<object>
<param>
- 不同的name
属性<select>
<textarea>
对于每个元素,如果它们具有name
属性,则会将它们添加到文档中,如您所见。但是,获取此元素的首选方法是使用document.getElementsByName()