Ответили в другом месте, но, очевидно, мы должны принять (некоторые) дубликаты :
Объектная модель документа является внутренним представлением HTML браузера. Он основан на идее «детей». Таким образом, тег <p>
может содержать несколько текстовых узлов и несколько тегов <span>
, например:
<p><span>Hello,</span> this is some text. <span>It</span> is just a short paragraph</p>
Этот тег <p>
имеет 4 дочерних элемента: два <span>
s и два текстовых узла (this is some text
и is just a short paragraph
). Остальные фрагменты текста являются дочерними элементами соответствующих тегов <span>
.
Браузер сохраняет эту информацию (вместо того, чтобы просто хранить огромный поток HTML, который очень трудно обрабатывать) во внутренней памяти. Это значительно упрощает форматирование с использованием каскадных таблиц стилей (CSS) и внесение изменений в него с помощью JavaScript (создание и удаление деталей, перемещение деталей от одного родителя к другому и т. Д.).
Все версии HTML (за исключением, возможно, очень ранних) используют DOM. Каждая версия имеет правила, например, какие теги являются допустимыми, а какие могут быть дочерними для каждого элемента. Эти правила реализуются при обработке HTML и создании его представления в DOM.