Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
规范文档:DOM文本节点_Dom_Html_Specifications - Fatal编程技术网

规范文档:DOM文本节点

规范文档:DOM文本节点,dom,html,specifications,Dom,Html,Specifications,我正在读一本关于HTML5的书。从我链接的地方往下几行,将显示一个示例DOM树,用于给定的示例HTML代码。为什么在元素前面没有文本节点?为什么DOCTYPE和节点之间没有文本节点?错误或功能?前面的文本节点可能是遗漏。在根元素之前没有文本节点,因为大多数XML/HTML解析器不能处理根节点之外的元素,所以它们会默默地忽略它们。如果在此处添加注释或处理指令,也会发生同样的情况。功能。主要原因是 <!DOCTYPE html> <html> <head>

我正在读一本关于HTML5的书。从我链接的地方往下几行,将显示一个示例DOM树,用于给定的示例HTML代码。为什么在
元素前面没有文本节点?为什么
DOCTYPE
节点之间没有文本节点?错误或功能?

前面的文本节点可能是遗漏。在根元素之前没有文本节点,因为大多数XML/HTML解析器不能处理根节点之外的元素,所以它们会默默地忽略它们。如果在此处添加注释或处理指令,也会发生同样的情况。

功能。主要原因是

<!DOCTYPE html>
<html>
 <head>
  <title>Sample page</title>
...,
返回
元素。但是,如果包含文本节点,则将返回该节点


(请注意,
之间的新行最后出现在
主体
元素中。)

我没有一个具体的例子,但我认为有些环境足够“智能”,可以过滤掉“不相关”的文本,即不重要的空白。如果一个文本元素只包含不重要的空白,那么实现将其删除可能是合法的。作为一名开发人员,当这种情况发生时,我通常会心存感激。在哪种情况下,“”和“”之间的“CR”会比“”和“”之间的“CR”更重要或更不重要?我必须同意Aaron的观点。虽然和之间的CR对我来说毫无用处,但其他CR也同样重要。如果可能的话,我希望我的环境足够智能,能够严格遵守标准。事实上,我记得我对IE和FF之间文本节点的差异感到非常恼火。也就是说,我已经在那个页面上发表了一条评论,希望澄清。谢谢你的回复。我非常喜欢这个答案,因为你也注意到了之后额外的CR。我也是,但当时不知道该怎么想。因此,这绝对可能是出于遗留原因做出的决定(未记录在案?)。同时,集团愿意在减少混乱的基础上对标准进行其他修改。很奇怪。我会让这个问题保持一段时间,这样我就能弄清楚到底发生了什么。如果您感兴趣,我还要求在编辑器处澄清,编辑器是否愿意更改规范以减少混乱,但前提是网页不依赖特定行为,并且浏览器供应商是否愿意实施更改。这里的情况并非如此。
document.documentElement.firstChild