1

我知道如果我们想找到一组元素,getElementsByTagName 是我们的方法,它返回一个 NodeList。但是如果我们正在寻找带有 "body" 的标签名称,那么为什么我们需要在 ("body") 元素之后添加 [0] 呢?HTML 文档中只有一个 body 标签。

 var body = document.getElementsByTagName("body")[0];
 body.className = "unreadable";

为什么我们不能像这样在没有 index[0] 的情况下编写这段代码

 var body = document.getElementsByTagName("body");
 body.className = "unreadable";

如果我编写此代码,将不会添加不可读的类与正文标记...为什么?

4

3 回答 3

9

因为document.getElementsByTagName总是返回 NodeList。如果您想找到更简单的方法来检索身体,您可以使用document.body

于 2011-07-21T08:03:59.213 回答
3

getElementsByTagName返回一个节点列表。它可能没有任何项目。它可能有一个。它可能有很多。你可以通过测试它来查看它有多少.length

如果它有时返回一个 NodeList,有时返回一个 ElementNode,那会很混乱。

于 2011-07-21T08:03:45.553 回答
2

getElementsByTagName [docs] 总是返回一个NodeList. 带有某个标签的元素是否只存在一次并不重要。

如果函数的行为不一致,那就不好了。

于 2011-07-21T08:03:34.240 回答