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) Non-standard

(Не доступно для веб-контента.) Только для чтения. Объект 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 (en-US) Non-standard

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Только для чтения

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 (en-US) показывающий, есть ли у элемента какие-либо атрибуты или нет.

Node.hasChildNodes()

Возвращает Boolean (en-US) показывающий, есть ли у элемента дочерние узлы или нет.

Node.insertBefore()

Вставляет первым Node данный в качестве параметра, непосредственно перед вторым, потомком данного элемента Node.

Node.isDefaultNamespace()

Node.isEqualNode()

Node.isSameNode()

Node.lookupPrefix()

Node.lookupNamespaceURI()

Node.normalize()

Очищает все текстовые узлы под этим элементом (поглотить смежный, удалить пустой).

Node.removeChild()

Удаляет дочерний узел из текущего элемента, который должен быть потомком текущего узла.

Node.replaceChild()

Заменяет одного потомка Node из существующего на второй указанный в параметре.

Node.setUserData()

Позволяет пользователю присоединить или удалить DOMUserData к узлу.

Примеры

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

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

js
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 относительно их как эти (en-US) объекты.

Параметры

parentNode

Родительский узел (Node Object).

callbackFunction

Колбэк-функции (Function (en-US)).

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

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

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

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

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

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

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

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

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

Specification
DOM Standard
# interface-node

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

BCD tables only load in the browser