我尝试搜索但未找到答案:
所以我知道,当页面传递给浏览器或由浏览器下载时,会生成该页面的树结构表示形式,称为DOM。然后可以使用Javascript操纵该树的节点(代表元素的对象)。
现在,如果我打开Chrome的开发者控制台并执行以下命令:
document.childNodes;
我得到了我所期望的,即两个节点,即DOCTYPE和html节点
[<!DOCTYPE html>, html]
如果我现在为html分配一个变量,然后像这样检查它的节点:
var htmlNode = document.childNodes[1];
htmlNode.childNodes;
奇怪的事情发生了
我得到了预期的“头”节点,然后有一个“文本”节点,我不知道它的来源,最后是“主体”节点。
[head, text, body]
我的问题是这个“文本”节点来自哪里?
答案 0 :(得分:2)
尽管HTML指出html
元素通常只能包含head
和body
,但这些元素的开始和结束标记之间当然都允许元素间空格。< / p>
在HTML DOM中,元素之间的空白总是分布在文本节点中。因此,假设您在head
和body
元素节点之间看到的文本节点是</head>
结束标记和<body>
起始标记之间的元素间空格