4

我试图搜索但没有找到答案:

所以我知道当一个页面被传递给浏览器或被浏览器下载时,会生成一个页面的树结构表示,称为 DOM。然后可以使用 Javascript 来操作这棵树的节点(表示元素的对象)。

所以现在如果我打开 Chrome 的开发者控制台并执行命令:

document.childNodes;

我得到了我所期望的,即两个节点,即 DOCTYPE 和 html 节点

[<!DOCTYPE html>, html]

如果我现在为 html 分配一个变量,然后检查它的节点,如下所示:

var htmlNode = document.childNodes[1];
htmlNode.childNodes;

奇怪的事情发生了:

我得到了预期的“头”节点,然后有一个我不知道它来自哪里的“文本”节点,最后是预期的“主体”节点。

[head, text, body]

我的问题是这个“文本”节点来自哪里?

在此处输入图像描述

4

1 回答 1

2

尽管 HTML 表示该html元素通常只能包含headand body,但在任何这些元素的开始和结束标记之间当然允许元素间的空白。

在 HTML DOM 中,元素间的空白总是分布到文本节点中。因此,您在head和元素节点之间看到的文本节点大概是结束标记和开始标记body之间的元素间空白。</head><body>

于 2018-08-30T17:44:34.377 回答