Что такое «текстовый» дочерний узел html-узла? - PullRequest
0 голосов
/ 30 августа 2018

Я пытался найти, но не нашел ответа на этот вопрос:

Итак, я знаю, что когда страница передается или загружается браузером, генерируется представление этой страницы в древовидной структуре, называемое DOM. Затем Javascript можно использовать для управления узлами (объектами, представляющими элементы) этого дерева.

Так что теперь, если я открою консоль разработчика Chrome и выполню команду:

document.childNodes;

Я получаю то, что ожидаю, а именно два узла, которые являются DOCTYPE и узлами html

[<!DOCTYPE html>, html]

Если я теперь назначу переменную html, а затем проверим ее узлы следующим образом:

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

Нечто странное происходит:

Я получаю «головной» узел, как и ожидалось, а затем есть «текстовый» узел, который я понятия не имею, откуда он, а затем, наконец, «тело», как и ожидалось.

[head, text, body]

У меня вопрос, откуда взялся этот "текстовый" узел?

enter image description here

1 Ответ

0 голосов
/ 30 августа 2018

Хотя HTML говорит, что элемент html обычно может содержать только head и body, между всеми начальными и конечными тегами любого из этих элементов, конечно, допускается пробел.

В HTML DOM, межэлементный пробел всегда распределяется по текстовым узлам. Итак, предположительно, текстовый узел, который вы видите между узлами элементов head и body, является межэлементным пробелом между конечным тегом </head> и начальным тегом <body>.

...