MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

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

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

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

Свойства

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

Node.baseURI Только для чтения
Возвращает DOMString показывающие основной URL. Понятие основного URL изменяется из одного языка в другой; В HTML, это соответствует протоколу , доменному имени и структуре каталогов, все до последнего '/'.
Node.baseURIObject
(Не доступно для веб-контента.) Только для чтения. Объект nsIURI, представляющий базовый URI элемента.
Node.childNodes Только для чтения
Возвращает живой NodeList, содержащий всех потомков данного узла. Живой NodeList означает то, что если потомки узла изменяются, объект NodeList автоматически обновляется.
Node.firstChild Только для чтения
Возвращает Node, представляющий первый прямой узел потомок узла или null, если узел не имеет потомков.
Node.lastChild Только для чтения
Возвращает Node, представляющий последний прямой узел потомок узла или null, если узел не имеет потомков.
Node.localName Только для чтения
Возвращает DOMString представляющий локальную часть условного имени элемента. В Firefox 3.5 и более ранних версиях, свойство локального имени в верхнем регистре для HTML элементов (но не XHTML элементов). В более поздних версиях, такого не произошло, и свойство находится в нижнем регистре для HTML и XHTML . Хотя недавние спецификации требуют от localName быть определенным как интерфейс Element, но браузеры основанные на Gecko все еще реализуют его как интерфейс Node.
Node.namespaceURI Только для чтения
Пространство имен 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
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 objects), значение соответствует текстовым данным, содержащихся в объекте.
Node.ownerDocument Только для чтения
Возвращает Document к которому принадлежит этот узел. Если нет связанного сним документа, возвращает null.
Node.parentNode Только для чтения
Возвращает Node который является родителем этого узла. Если нет такого узла, по причине того, что узел находится вверху древа или не относится к древу, данное свойство вернет null.
Node.parentElement Только для чтения
Возвращает Element который является родителем данного узла. Если узел не имеет родителя или если родитель не Element, это свойство вернет null.
Node.prefix Только для чтения
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()
...
Node.getUserData()
Позволяет пользователю получить некоторый DOMUserData от узла.
Node.hasAttributes()
Возвращает Boolean показывающий, есть ли у элемента какие-либо атрибуты или нет.
Node.hasChildNodes()
Возвращает Boolean показывающий, есть ли у элемента дочерние узлы или нет.
Node.insertBefore()
Вставляет первым Node данный в качестве параметра, непосредственно перед вторым, потомком данного элемента Node.
Node.isDefaultNamespace()
 
Node.isEqualNode()
 
Node.isSameNode()
 
Node.isSupported()
Возвращает Boolean флаг содержащий результаты теста, реализует ли реализация DOM конкретную особенность и поддерживается ли эта особенность конкретным узлом.
Node.lookupPrefix()
 
Node.lookupNamespaceURI()
 
Node.normalize()
Очищает все текстовые узлы под этим элементом (поглотить смежный, удалить пустой).
Node.removeChild()
Удаляет дочерний узел из текущего элемента, который должен быть потомком текущего узла.
Node.replaceChild()
Заменяет одного потомка Node из существующего на второй указанный в параметре.
Node.setUserData()
Позволяет пользователю присоединить или удалить 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' в этой спецификации.
Устаревшая Изначальное описание.

 

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

Свойство Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) 1.0 (1.7 или ранее) (Да) (Да) (Да)
getFeature() Нет Поддерживаемые от 1.0 (1.7 или ранее) до 6.0 (6.0).
Удалено в 7.0 (7.0)
? Нет Нет
getUserData(), setUserData() and hasAttributes() Нет Поддерживаемые от 1.0 (1.7 или ранее) до 21.0 (21.0).
Удалено в 22.0 (22.0)
? Нет Нет
isSameNode() Нет Поддерживаемые от 1.0 (1.7 или ранее) до 9.0 (9.0).
Удалено в 10.0 (10.0)
? Нет Нет
isSupported() ? Поддерживаемые от  1.0 (1.7 или ранее) до 21.0 (21.0).
Удалено в 22.0 (22.0)
? ? ?
attributes Нет Поддерживаемые от 1.0 (1.7 или ранее) до 21.0 (21.0).
Перемещено к  Element в 22.0 (22.0)
Нет Нет Нет
Свойство Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) 1.0 (1.0) (Да) (Да) (Да)
getFeature() Нет Поддерживаемые от  1.0 (1.7 или ранее) до 6.0 (6.0).
Удалено в 7.0 (7.0)
? Нет Нет

[1] Webkit и Blink неверно не делают Node наследуя от EventTarget.

Метки документа и участники

Метки: 
 Внесли вклад в эту страницу: Rudy-Clark, AlexAlex, fscholz
 Обновлялась последний раз: Rudy-Clark,