使用document.getElementsByTagName进行DOM操作

时间:2014-02-12 19:40:26

标签: javascript dom

我注意到此方法仅在插入[0]时有效,但是,我无法在语法文档中找到它的用途或解释。这是做什么的,如果没有它,为什么代码不起作用?

document.getElementsByTagName('body')[0].style.backgroundColor = "pink"

2 个答案:

答案 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