Node

Node это интерфейс, от которого наследуют несколько типов DOM, он так же позволяет различным типам быть обработанными(или протестированными).

Следующие интерфейсы полностью наследуют от Node его методы и свойства: Document, Element, CharacterData (which Text, Comment, и CDATASection inherit), ProcessingInstruction (en-US), DocumentFragment, DocumentType (en-US), Notation, Entity, EntityReference

Эти интерфейсы могут возвращать null в особых случаях, когда методы и свойства не уместны. Они могут сбросить исключение - например, когда добавляются дети к типу узла, у которого не может их существовать.

Свойства

Наследует свойства от родителей EventTarget.[1]

Node.baseURI Только для чтения
Возвращает DOMString показывающие основной URL. Понятие основного URL изменяется из одного языка в другой; В HTML, это соответствует протоколу , доменному имени и структуре каталогов, все до последнего '/'.
Node.baseURIObject (en-US)
(Не доступно для веб-контента.) Только для чтения. Объект nsIURI, представляющий базовый URI элемента.
Node.childNodes Только для чтения
Возвращает живой NodeList, содержащий всех потомков данного узла. Живой NodeList означает то, что если потомки узла изменяются, объект NodeList автоматически обновляется.
Node.firstChild Только для чтения
Возвращает Node, представляющий первый прямой узел потомок узла или null, если узел не имеет потомков.
Node.lastChild Только для чтения
Возвращает Node, представляющий последний прямой узел потомок узла или null, если узел не имеет потомков.
Node.localName Этот API вышел из употребления и его работа больше не гарантируется. Только для чтения
Возвращает DOMString представляющий локальную часть условного имени элемента. В Firefox 3.5 и более ранних версиях, свойство локального имени в верхнем регистре для HTML-элементов (но не XHTML элементов). В более поздних версиях, такого не произошло, и свойство находится в нижнем регистре для HTML и XHTML . Хотя недавние спецификации требуют от localName быть определённым как интерфейс Element, но браузеры основанные на Gecko все ещё реализуют его как интерфейс Node.
Node.namespaceURI Этот API вышел из употребления и его работа больше не гарантируется. Только для чтения
Пространство имён URI данного узла или null, если нет пространства имён. В Firefox 3.5 и более ранних версиях, HTML-элементы не имеют пространства имён. В более поздних версиях, HTML-элементы находятся в пространстве имён http://www.w3.org/1999/xhtml для деревьев HTML и XML.
Хотя недавние спецификации требуют namespaceURI быть определённым как интерфейс Element, но браузеры основанные на Gecko все ещё реализуют его как интерфейс Node.
Node.nextSibling Только для чтения
Возвращает Node представляющий следующий узел в древе или null, если не такого узла.
Node.nodeName Только для чтения
Возвращает DOMString содержащий имя узла. Структура имени будет отличаться от типа имени. Например, HTMLElement будет содержать имя соответствующего тега: 'audio' для HTMLAudioElement, узел Text будет строкой '#text' или узел Document будет строкой '#document'.
Node.nodePrincipal (en-US)
nsIPrincipal представляет основной узел.
Node.nodeTypeТолько для чтения
Возвращает беззнаковое короткое число (unsigned short) представляющее тип узла. Возможные значения:
Имя Значение
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
Node.nodeValue
Это DOMString, представляющее значение объектов. Для большинства типов Node, возвращает null и любой набор операция игнорируется. Для узлов типа TEXT_NODE (Text objects), COMMENT_NODE (Comment objects), и PROCESSING_INSTRUCTION_NODE (ProcessingInstruction (en-US) objects), значение соответствует текстовым данным, содержащихся в объекте.
Node.ownerDocument Только для чтения
Возвращает Document к которому принадлежит этот узел. Если нет связанного с ним документа, возвращает null.
Node.parentNode Только для чтения
Возвращает Node который является родителем этого узла. Если нет такого узла, по причине того, что узел находится вверху древа или не относится к древу, данное свойство вернёт null.
Node.parentElement Только для чтения
Возвращает Element который является родителем данного узла. Если узел не имеет родителя или если родитель не Element, это свойство вернёт null.
Node.prefix Этот API вышел из употребления и его работа больше не гарантируется. Только для чтения
DOMString представляющий префикс пространства имён узла или null если нет префикса точно определённого.
Хотя недавние спецификации требуют того, чтобы префикс был определён как интерфейс Element, браузеры основанные на Gecko ещё реализовывают его как интерфейс Node.
Node.previousSibling Только для чтения
Возвращают Node представляющий предыдущий узел древа или null, если нет такого узла.
Node.textContent
Это DOMString представляющее текстовый контент элемента и всех его потомков.

Методы

Наследует методы от своих родителей EventTarget.[1]

Node.appendChild()
Вставляет Node как последний дочерний узел данного элемента.
Node.cloneNode()
Клонирует Node, и опционально, все его компоненты. По умолчанию, оно клонирует содержимое узла.
Node.compareDocumentPosition()
 
Node.contains()
 
Node.getFeature() Этот API вышел из употребления и его работа больше не гарантируется.
...
Node.getUserData() Этот API вышел из употребления и его работа больше не гарантируется.
Позволяет пользователю получить некоторый DOMUserData от узла.
Node.hasAttributes() Этот API вышел из употребления и его работа больше не гарантируется.
Возвращает Boolean (en-US) показывающий, есть ли у элемента какие-либо атрибуты или нет.
Node.hasChildNodes()
Возвращает Boolean (en-US) показывающий, есть ли у элемента дочерние узлы или нет.
Node.insertBefore()
Вставляет первым Node данный в качестве параметра, непосредственно перед вторым, потомком данного элемента Node.
Node.isDefaultNamespace()
 
Node.isEqualNode()
 
Node.isSameNode() Этот API вышел из употребления и его работа больше не гарантируется.
 
Node.isSupported() Этот API вышел из употребления и его работа больше не гарантируется.
Возвращает Boolean флаг содержащий результаты теста, реализует ли реализация DOM конкретную особенность и поддерживается ли эта особенность конкретным узлом.
Node.lookupPrefix()
 
Node.lookupNamespaceURI()
 
Node.normalize()
Очищает все текстовые узлы под этим элементом (поглотить смежный, удалить пустой).
Node.removeChild()
Удаляет дочерний узел из текущего элемента, который должен быть потомком текущего узла.
Node.replaceChild()
Заменяет одного потомка Node из существующего на второй указанный в параметре.
Node.setUserData() Этот API вышел из употребления и его работа больше не гарантируется.
Позволяет пользователю присоединить или удалить DOMUserData к узлу.
 

Примеры

Просмотреть все дочерние узлы

Следующая функция рекурсивный цикл всех дочерних узлов узла и она исполняет вызов функции относительно их (и себя относительно родительского узла).

function DOMComb (oParent, oCallback) {
  if (oParent.hasChildNodes()) {
    for (var oNode = oParent.firstChild; oNode; oNode = oNode.nextSibling) {
      DOMComb(oNode, oCallback);
    }
  }
  oCallback.call(oParent);
}

Синтаксис

DOMComb(parentNode, callbackFunction);

Описание

Рекурсивный цикл всех дочерних узлов parentNode и самого parentNode, выполняет callbackFunction относительно их  как эти объекты.

Параметры

parentNode
Родительский узел (Node Object).
callbackFunction
Колбэк-функции (Function).

Пример использования

Следующий пример отправляет в console.log текстовое содержимое body:

function printContent () {
  if (this.nodeValue) { console.log(this.nodeValue); }
}

onload = function () {
  DOMComb(document.body, printContent);
};

Удалить все потомки, вложенные в узел

Element.prototype.removeAll = function () {
  while (this.firstChild) { this.removeChild(this.firstChild); }
  return this;
};

Пример использования

/* ... как альтернатива document.body.innerHTML = "" ... */
document.body.removeAll();

Спецификации

Спецификация Статус Комментарий
DOM
Определение 'Node' в этой спецификации.
Живой стандарт Удалены следующие свойства: attributes, namespaceURI, prefix, и localName.
Удалены следующие методы: isSupported(), hasAttributes(), isSameNode(), getFeature(), setUserData(), и getUserData().
Document Object Model (DOM) Level 3 Core Specification
Определение 'Node' в этой спецификации.
Устаревшая Методы insertBefore(), replaceChild(), removeChild(), and appendChild() возвращают ещё один вид ошибок (NOT_SUPPORTED_ERR) если вызваны из Document.
Метод normalize() был модифицирован таким образом, что узел Text также может быть нормализован, если надлежащий флаг DOMConfiguration установлен.
Добавлены следующие методы: compareDocumentPosition(), isSameNode(), lookupPrefix(), isDefaultNamespace(), lookupNamespaceURI(), isEqualNode(), getFeature(), setUserData(), and getUserData().
Добавлены следующие свойства: baseURI and textContent.
Document Object Model (DOM) Level 2 Core Specification
Определение 'Node' в этой спецификации.
Устаревшая Свойство ownerDocument был слегка изменён, так что DocumentFragment также возвращает null.
Добавлены следующие свойства: namespaceURI, prefix, and localName.
Добавлены следующие методы: normalize(), isSupported() and hasAttributes().
Document Object Model (DOM) Level 1 Specification
Определение 'Node' в этой спецификации.
Устаревшая Изначальное описание.

 

Совместимость с браузерами

BCD tables only load in the browser