Почему outerHTML возвращает комментарии <! - - ->? - программирование
Подтвердить что ты не робот

Почему outerHTML возвращает комментарии <! - - ->?

Здесь у меня есть jsfiddle - http://jsfiddle.net/stevea/QpNbu/3/ - который собирает outerHTML для всех элементов с class='active'. Меня поражает то, что даже если я прокомментирую некоторые из HTML, как в:

<!--      <div>'Some inner text'</div>  -->

outerHTML все еще возвращает его! Этого еще не может быть в DOM, поэтому мне интересно, где выглядит outerHTML.

Спасибо за понимание.

4b9b3361

Ответ 1

Комментарии в HTML удивительно, на самом деле, часть DOM! Если вы посмотрите на этом экране, сделайте следующее:

web inspector

Вы увидите, что веб-инспектор google chrome отображает его как часть DOM (обратите внимание, как нижняя панель показывает его как дочерний элемент div#box1.active).

Для более конкретной документации, если вы посмотрите на возможные Node.nodeType для узлов DOM в MDN, вы увидите, что COMMENT_NODE является одним из допустимых типов.

COMMENT_NODE 8

W3 также определяет интерфейс Comment для DOM:

Этот интерфейс наследует от CharacterData и представляет содержимое комментария, то есть все символы между начальным "<!" и заканчивающимся "- > ". Обратите внимание, что это определение комментария в XML и, на практике, HTML, хотя некоторые HTML-инструменты могут реализовать полную структуру комментариев SGML.

Ответ 2

Комментарии HTML являются частью DOM, они просто игнорируются браузером для отображения.