Обычно, если в HTML есть текст между тегами, он становится текстовым узлом. Тем не менее, это не всегда так. Рассмотрим этот пример:
<p>
<a href = "hello.html">hello</a> <a href = "world.html">world</a>
</p>
Здесь разрыв строки и два пробела между <p> и первым <a ...> не будут отображаться как текстовый узел в DOM, по крайней мере, в Chrome. hello и world, конечно же, будут текстовыми узлами. Казалось бы, последовательности, состоящие только из пробелов, не отображаются как текстовые узлы, но это не всегда так: в этом примере пространство между двумя ссылками является текстовым узлом.
Как Chrome решает, что становится текстовым узлом?






Попробуйте это в Chrome, и вы увидите, что firstChild из p - это Text:
let p = document.querySelector('p')
console.info(p.firstChild.constructor.name)<p>
<a href = "hello.html">hello</a> <a href = "world.html">world</a>
</p>Кажется, в Chrome это даже не попробовать, так как он выкидывает "Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag."
SO необходимо обновить реализацию своего фрагмента, поскольку на данный момент он явно не работает.
Вы можете проверить это в Chrome здесь: https://codepen.io/anon/pen/qQPdbz?editors=1111
Ой! Я был уверен, что если он не отображается в представлении «Элементы», значит, его нет ...
Хром не решает. Это в спецификации DOM, которая ясно указывает - насколько это возможно - как это определяется.