НЕ МОЛЧИ!!!    Сделай что-нибудь, чтобы остановить войну России в Украине.
...бойтесь людей равнодушных - именно с их молчаливого согласия происходят все самые ужасные преступления на свете.   ("Репортаж с петлёй на шее")

Интерфейс Node изнутри

Приводится список свойств и методов интерфейса Node модели DOM. Каждый элемент списка имеет краткое описание. Удобно использовать в качестве шпаргалки свойств и методов HTML тегов тем, кто работает на чистом Javacsript.

Итак, ниже перечислены стандартные свойства и методы интерфейса Node, который наследует свойства от своего родителя EventTarget. Почему здесь описан именно этот интерфейс? Потому что он является родителем для HTML элементов, т.е. набор его свойств и методов, как правило, присутствует в тегах разметки. Это значит, что элемент, полученный, например, командой var elem = document.getElementById(‘id_name’); будет обладать всем нижеперечисленным набором, НО… . Прошу обратить внимание на оговорку «как правило», т.к. иногда могут встретиться исключения из общего правила, поскольку в некоторых наследниках не все может быть реализовано, но это весьма малые исключения из общего правила наследования. Также хочу предупредить, что под словом «стандартные» имеется ввиду, что ниже приведен не полный список, а только стандартизованные атрибуты, свойства и поведение которых однозначно описаны в Web стандартах. Еще раз подчеркиваю — ниже приводятся свойства и методы основного предка HTML тегов.

Свойства интерфейса Node

Node.baseURI – свойство возвращает строку с базовым URL адресом.

В различных скриптах и языках прогрммирования базовый URL может интерпретироваться по-разному, для HTML это понятие включает протокол, доменное имя и структуру директорий, т.е. адресная строка до последнего слеша «/».

Node.childNodes – возвращает объект, содержащий живой список всех детей узла.

Живой список означает, что список отслеживает изменения, происходящие в детях узла.

Node.firstChild – возвращает первый узел из списка прямых дочерних узлов.

Если у узла нет дочерних элементов в документе, то возвращается null.

Node.lastChild – возвращает последний узел из списка прямых дочерних узлов.

Если у узла нет дочерних элементов в документе, то возвращается null.

Node.localName – возвращает строку, определяющую локальную часть имени элемента.

Node.nextSibling – возвращает следующий узел из списка дочерних узлов.

Если следующего узла не существует, возвращается null.

Node.nodeName – возвращает строку с именем узла.

Возвращаемая строка имени зависит от типа узла, например, узел HTMLElement возвратит наименование тега, узел Document возвратит «#document», узел Text вернет строку «#text». HTML элементы имя тега всегда возвращают в верхнем регистре.

Node.nodeType – возвращает беззнаковое число, представляющее тип узла.

Все возможные типы узлов представлены в конце статьи в таблице.

Node.nodeValue – возвращает строку, представляющую значение узла.

Содержимое возвращаемой строки зависит от типа узла.

Node.ownerDocument – возвращает объект Document, которому принадлежит данный узел.

Если такой узел не существует, возвращается null.

Node.parentNode – возвращает объект Node, являющийся родителем данного.

Если родителя нет, возвращается null.

Node.parentElement – возвращает объект Element, являющийся родителем данного.

Если родителя нет, возвращается null.

Node.previousSibling – возвращает предыдущий узел из списка дочерних узлов.

Если следующего узла не существует, возвращается null.

Node.textContent – возвращает строку с текстовым содержимым элемента и его потомков.

Методы интерфейса Node

Node.appendChild(NewChild) – добавляет объект NewChild в конец списка наследников данного узла Node.

cloneNode(bool) – возвращает копию данного узла. Если аргумент равен true, элемент клонируется со своими дочерними элементами, иначе клон будет создан без дочерних. Вновь созданный объект не будет иметь родителя (parentNode = null), пользовательские данные исходного узла также не переносятся.

Node.hasAttributes() – проверяет есть ли у узла атрибуты. Не рекомендован к употреблению, но уж дюже удобный :).

Node.compareDocumentPosition(otherNode) – сравнивает позиции данного узла и узла из другого документа.

node.contains(otherNode) – определяет, является ли данный узел предком узла otherNode.

Node.hasChildNodes()– проверяет, имеет ли данный узел дочерние элементы.

Node.insertBefore(node1, node2) – вставляет узел node1 перед узлом node2 в список дочерних данного узла.

Node.isEqualNode(node) – проверяет два узла на равенство.

Node.normalize() – производит так называемую нормализацию текстовых узлов. При нормализации метод объединяет смежные и удаляет пустые текстовые узлы.

Node.removeChild(childNode) – удаляет заданного в параметрах наследника. Метод возвращает удаленный узел.

Node.replaceChild(newNode, oldNode) – заменяет указанного наследника новым узлом. Для любителей первоисточников привожу ссылку на описание NODE в W3C (на английском, естественно).

В заключение приведу список всех возможных типов узлов с их числовыми константами.

Типы узлов Web
Тип узла Значение константы
ELEMENT_NODE 1
ATTRIBUTE_NODE 2
TEXT_NODE 3
CDATA_SECTION_NODE 4
ENTITY_REFERENCE_NODE 5
ENTITY_NODE 6
PROCESSING_INSTRUCTION_NODE 7
COMMENT_NODE 8
DOCUMENT_NODE 9
DOCUMENT_TYPE_NODE 10
DOCUMENT_FRAGMENT_NODE 11
NOTATION_NODE 12