我正在阅读关于HTML5的document。从我链接的地方向下几行,显示了给出的示例HTML代码的示例DOM树。为什么<head>
元素之前没有文本节点?为什么DOCTYPE
和<html>
节点之间没有文本节点?错误或功能?
答案 0 :(得分:2)
特征。主要原因是,给定标记
<!DOCTYPE html>
<html>
<head>
<title>Sample page</title>
...,
有些人期待
document.documentElement.firstChild
返回head
元素。但是,如果包含文本节点,那就是要返回的节点。
(另请注意,</body>
和</html>
之间的新行最终会出现在body
元素中。)
答案 1 :(得分:0)
<head>
之前的文本节点可能是一个遗漏。您没有在根元素之前获得文本节点,因为大多数XML / HTML解析器无法处理根节点之外的元素,因此它们会默默地忽略它们。如果在那里添加注释或处理指令,也会发生同样的情况。