我注意到此方法仅在插入[0]时有效,但是,我无法在语法文档中找到它的用途或解释。这是做什么的,如果没有它,为什么代码不起作用?
document.getElementsByTagName('body')[0].style.backgroundColor = "pink"
答案 0 :(得分:2)
getElementsByTagName
会返回NodeList
,这是与该标记匹配的所有元素的集合。由于它是一个集合,而不是一个元素,因此您需要指定要对其进行操作的集合中的哪些项目。 NodeList
类似于数组,因此您使用下标来访问集合中的各个元素 - [0]
表示第一个元素。如果要对所有匹配元素执行某些操作,可以使用for
循环:
var anchors = document.getElementsByTagName('a');
for (i = 0; i < anchors.length; i++) {
anchors[i].style.backgroundColor = 'red';
}
在body
的情况下,您知道只会有其中一个,因此不需要这样做,您只需使用[0]
明确地对其进行索引。
答案 1 :(得分:0)
此方法返回与提供的标记名称匹配的元素集合(数组)。即使只有一个元素与标记名称匹配,它也会这样做。为方法结果提供整数时,您将寻址数组中的特定元素。有关数组的基本信息,请查看此处:http://www.w3schools.com/js/js_obj_array.asp