JavaScript с нуля
- Автор: Кирупа Чиннатамби
- Жанр: Образование
- Дата выхода: 2021
- Цикл: Библиотека программиста
Читать книгу "JavaScript с нуля"
Элементы DOM — они как объекты
Возможность использовать JavaScript для изменения, отображаемого в браузере, стала доступна благодаря одной основной детали. Заключается она в том, что каждый HTML-тег, правило стиля и другие относящиеся к странице компоненты также представлены и в DOM.
Чтобы наглядно изобразить все сказанное, предположим, что у нас есть элемент изображения, определенный в разметке:
<img src="images/lol_panda.png" alt="Sneezing Panda!" width="250"
height="100"/>
Когда браузер считывает документ и доходит до этого элемента, он создает узел в DOM, который представляет его, как это показано на рис. 26.1.
Это представление в DOM дает нам возможность делать все, что мы могли делать в разметке. На деле оказывается, что представление DOM позволяет производить даже больше действий в отношении HTML-элементов, чем при использовании самой разметки. Этого мы в некоторой степени коснемся в текущей главе и существенно серьезнее рассмотрим в дальнейшем. Причина такой гибкости HTML-элементов при их рассмотрении через DOM кроется в том, что они имеют много общего с обычными объектами JavaScript. Наши элементы DOM содержат свойства, позволяющие получать и устанавливать значения и вызывать методы. Они имеют форму наследования, рассмотренную нами несколько ранее, при которой функциональность, предоставляемая каждым элементом DOM, распространяется по базовым типам Node, Element и HTMLElement (рис. 26.2).
Рис. 26.1. Все наши HTML-элементы в итоге будут иметь представление в DOM
Рис. 26.2. Иерархия элементов представления, с которыми мы обычно сталкиваемся в HTML
Наверняка элементы DOM даже пахнут, как Object, когда забегают в дом после прогулки под дождем.
Несмотря на все схожести, в связи с требованием закона и в целях сохранения ментального здоровья я должен предоставить следующий дисклеймер:
Теперь, когда это нескладное обсуждение позади, давайте уже начнем именно модифицировать DOM.