我知道如果我们想要找到一组元素,getElementsByTagName就是我们的方法,它返回一个NodeList。但如果我们正在寻找带有“body”的标签名称,那么为什么我们需要在(“body”)元素之后添加[0]? HTML文档中只有一个正文标记。
var body = document.getElementsByTagName("body")[0];
body.className = "unreadable";
为什么我们不能像这样
编写没有索引[0]的代码 var body = document.getElementsByTagName("body");
body.className = "unreadable";
如果我写这段代码,那么不可读的类将不会添加正文标记...为什么?
答案 0 :(得分:9)
因为document.getElementsByTagName
总是返回NodeList。如果您想要更轻松地检索正文,可以只使用document.body
答案 1 :(得分:3)
getElementsByTagName
返回NodeList。它可能没有任何物品。它可能有一个。它可能有很多。您可以通过测试其.length
来查看其中有多少。
如果它有时会返回一个NodeList并且有时会返回一个ElementNode,那将会很混乱。
答案 2 :(得分:2)
getElementsByTagName
[docs] 始终会返回NodeList
。具有特定标记的元素是否只存在一次并不重要。
如果函数表现不一致会很糟糕。