Что считается текстовым узлом? - PullRequest
0 голосов
/ 18 ноября 2018

Обычно, если между тегами в HTML есть текст, он становится текстовым узлом.Тем не менее, это не всегда так.Рассмотрим этот пример:

<p>
  <a href="hello.html">hello</a> <a href="world.html">world</a>
</p>

Здесь разрыв строки и 2 пробела между <p> и первым <a ...> не будут отображаться как текстовый узел в DOM, по крайней мере, в Chrome.hello и world, конечно, будут текстовыми узлами.Казалось бы, последовательности только пробелов не отображаются как текстовые узлы, но это не всегда так: в этом примере пространство между двумя ссылками является текстовым узлом.

Как Chrome решает, что становитсятекстовый узел?

1 Ответ

0 голосов
/ 18 ноября 2018

Попробуйте это в Chrome, и вы увидите, что firstChild из p равно Text:

let p = document.querySelector('p')

console.log(p.firstChild.constructor.name)
<p>
  <a href="hello.html">hello</a> <a href="world.html">world</a>
</p>

Edit:

Кажется, вы даже не можете попробовать это в Chrome, так как он выдает "Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag."

ТАК нужно обновить реализацию своего фрагмента, поскольку она явно не работает на данный момент.

Редактировать 2:

Вы можете проверить это в Chrome здесь: https://codepen.io/anon/pen/qQPdbz?editors=1111

...