Я читаю документ о HTML5. Несколько строк по сравнению с тем, где я связался, демонстрационное дерево DOM, отображены для демонстрационного данного HTML-кода. Почему не там никакой текстовый узел непосредственно перед элемент? Почему не там никакой текстовый узел между
DOCTYPE
и узлы? Ошибка или функция?
Функция. Основная причина в том, что с учетом разметки
<!DOCTYPE html>
<html>
<head>
<title>Sample page</title>
...,
некоторые люди ожидают, что
document.documentElement.firstChild
вернет элемент head
. Однако, если бы текстовый узел был включен, это был бы узел, который был бы возвращен.
(Также обратите внимание, что новая строка между
и
заканчивается в элементе body
.)
Текстовый узел перед , вероятно, является упущением. Вы не получаете текстовый узел перед корневым элементом, потому что большинство парсеров XML/HTML не могут работать с элементами вне корневого узла, поэтому они молча игнорируют их. То же самое происходит, если вы добавляете туда комментарий или инструкцию по обработке.