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:
DOMHTML
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).