Объектно-ориентированное программирование:DOM и дерево узлов
DOM (Document Object Model) позволяет использовать в коде JavaScript элементы HTML и их атрибуты. Есть два способа управлять элементами в документе с помощью кода на JavaScript - через название элемента и через дерево узлов. Эти два подхода не взаимноисключающие и они могут осуществляться в одном и том же скрипте.
Введение в объекты
Объекты - это скриптовые (или программируемые) элементы, которые имеют свойства, события и методы. JavaScript рассматривает все элементы Web-страницы, вилимую область экрана и окно броузера как программируемые объекты. Это значит, что при помощи кода можно управлять свойствами этих объектов, исполнять их методы и обрабатывать их события.
Все объекты связаны между собой иерархически и ониимеют свойства, котрые в свою очередь тоже являются объектами. Оператор точка (.) позволяет обращаться к свойствам и методам объекта.
DOM (Document Object Model) - это иерархически упорядоченная совокупность объектов, которую броузер узнает и поддерживает. Она состоит из отношений между этими объектами, их свойствами и методами. У каждого броузера своя DOM и они слегка отличаются друг от друга. Поэтому надо использовать общую часть DOM, чтобы код на JavaScript был совместим с большинством броузеров.
Объект window - родительский объект всех других объектов в DOM, он олицетворяет собой броузер.
В свою очередь он может содержать объекты document с разделами <head> и <body> или элемент <frameset>. Каждый фрейм в элементе <frameset> может содержать объекты document или другие элементы <frameset>.
При работе с фреймами можно использовать следующие огбращения:
window.self - обращается к текущему активному фрейму;
window.parent - обращается к родителю активного фрейма;
window.top - обращается к самому верхнему фрейму.
К докумеенту, расположенному в определенном фрейме можно обратиться по названию фрейма: window.frameName.
Каждый объект window и элемент <frame> содержит объект document, который содержит все другие документы на странице. На объект документ ссылаются все другие объекты на web-странице. Программируя свойства объекта document и методы в JavaScript, можно создавать содержимое web-страницы на стороне клиента во время выполнения.
Свойства объекта - это характеристики которые определяют и составляют объект.
Методы - это операции над объектами, позволяющие им выполнять действия. Методы всегда содержат круглые скобки, что отличает их от свойств.
Коллекция- это множество объектов, которые не связаны объектной иерархией ( находятся на разных иерархических ветвях). В коллекции элементы пронумерованы и доступ к ним может осуществляться, в частности, по номеру (аналогично массиву).
Узлы - это еще один способ программирования элементов HTML в документе. Есть два типа узлов: узел элемента и текстовый узел.
Узел элемента содержит элемент и текст внутри тега элемента.
Текстовый узел содержит только текст.
Например:
<p><b> Мой текст </b></p>
В этом примере три узла:
<p><b> Мой текст </b></p> - узел, который содержит узел
<b> Мой текст </b>, который в свою очередь содержит текстовый узел
Мой текст.
Узлы связаны между собой иерархичеси и находятся в отношении родитель - потомокили являются братьями.
Все узлы на странице (кроме узла document ) имеют родительский узел.
Самый верхний объект в дереве узлов - объект document.
В отличие от DOM, которая позволяет программировать каждый элемент документа, не обращаясь к другим элементам, дерево узлов дает возможность программировать элементы HTML, основываясь на отношениях между элементами.
Например:
<div id="myDiv"> Первый текст
<p id="myParag">Второй текст</p>
</div>
Используя DOM можно программировать элемент <div> непосредственно: