Javascript表达式 "document.body.getElementsByTagName();"与"document.getElementsByTagName();"有何不同?

4
尊敬的专家们,我对JavaScript还比较陌生,经常看到程序员们交替使用这些行。
document.body.getElementsByTagName();

并且。
document.getElementsByTagName();

这有什么区别,好处吗?

这与FF和IE有关系吗?

4个回答

8

区别在于上下文。在第一个示例中,您正在查找body标记内部,这意味着您永远无法检索body标记本身或该标记外部的任何其他元素。

在第二个示例中,您可以检索任何内容。

与特定浏览器无关。


1

第一个只会为您排序正文元素,即如果您的文档格式良好,则不包括头部元素。第二个将为您排序所有出现在头部或正文中的元素。


0
如上所述,区别在于上下文。
第一行将搜索出现在标签内的所有给定标签名称的元素。
第二行将搜索整个文档中出现的所有给定标签名称的元素。
有了上下文就有了速度:如果您能尽可能地缩小搜索范围,您将更快地找到元素,并且应用程序的性能将更好。
随着您的文档变得更加复杂,您会注意到类似这样的情况:

document.getElementById('foo').getElementsByTagName('span')

将开始明显比普通的旧版更快地执行

document.getElementsByTagName('div')

此外,缩小范围可以减少结果数量,这意味着在 DOM 节点上迭代查找要操作的节点时会更加高效。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接