Задать вопрос
JastaFly
@JastaFly

Странная работа навигации по DOM?

Доброго всем времени суток! Не могу вкурить как устроена навигация по DOM в JS previousElementSibling, nextElementSibling отдают null, previousSibling, nextSibling возвращают какой-то #text, parentElement и parentElement возвращают не не посредственного родителя элемента, а родителя, родителя элемента. Что тут вообще происходит?!???
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой 5 комментариев
Решение пользователя Rsa97 К ответам на вопрос (1)
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
previousSibling, nextSibling возвращают какой-то #text

Если взять такой HTML-код:
HTML
<!DOCTYPE html>
<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <!-- Page Body -->
    <h2><font color="#3AC1EF">My Page</font></h2>
    <p id="content">Thank you for visiting my web page!</p>
  </body>
</html>

то браузер превратит его в такую вот DOM:
DOM
HTML
  HEAD
    #text "\n "
    TITLE
      #text "My Page"
    #text "\n "
  #text "\n "
  BODY
    #text "\n "
    #comment " Page Body "
    #text "\n "
    H2
      FONT
        #text "My Page"
    #text "\n n"
    P
      #text "Thank you for visiting my web page!"
    #text "\n \n\n\n"

Переносы строк и пробелы между тэгами превратятся в дополнительные текстовые узлы. При этом такие узлы скрыты при навигации по элементам (previousElementSibling, nextElementSibling), но видны при навигации по полному дереву (previousSibling, nextSibling).
Ответ написан
Комментировать