---
title: Node
slug: Web/API/Node
tags:
- API
- DOM
translation_of: Web/API/Node
---
{{APIRef("DOM")}}
Node
это интерфейс, от которого наследуют несколько типов DOM, он так же позволяет различным типам быть обработанными(или протестированными).
Следующие интерфейсы полностью наследуют от Node
его методы и свойства: {{domxref("Document")}}, {{domxref("Element")}}, {{domxref("CharacterData")}} (which {{domxref("Text")}}, {{domxref("Comment")}}, и {{domxref("CDATASection")}} inherit), {{domxref("ProcessingInstruction")}}, {{domxref("DocumentFragment")}}, {{domxref("DocumentType")}}, {{domxref("Notation")}}, {{domxref("Entity")}}, {{domxref("EntityReference")}}
Эти интерфейсы могут возвращать null в особых случаях, когда методы и свойства не уместны. Они могут сбросить исключение - например, когда добавляются дети к типу узла, у которого не может их существовать.
Свойства
Наследует свойства от родителей {{domxref("EventTarget")}}.[1]
- {{domxref("Node.baseURI")}} {{readonlyInline}}
- Возвращает {{domxref("DOMString")}} показывающие основной URL. Понятие основного URL изменяется из одного языка в другой; В HTML, это соответствует протоколу , доменному имени и структуре каталогов, все до последнего
'/'
.
- {{domxref("Node.baseURIObject")}} {{Non-standard_inline()}}
- (Не доступно для веб-контента.) Только для чтения. Объект {{ Interface("nsIURI") }}, представляющий базовый URI элемента.
- {{domxref("Node.childNodes")}} {{readonlyInline}}
- Возвращает живой {{domxref("NodeList")}}, содержащий всех потомков данного узла. Живой {{domxref("NodeList")}} означает то, что если потомки
узла
изменяются, объект {{domxref("NodeList")}} автоматически обновляется.
- {{domxref("Node.firstChild")}} {{readonlyInline}}
- Возвращает {{domxref("Node")}}, представляющий первый прямой узел потомок узла или
null,
если узел не имеет потомков.
- {{domxref("Node.lastChild")}} {{readonlyInline}}
- Возвращает {{domxref("Node")}}, представляющий последний прямой узел потомок узла или
null
, если узел не имеет потомков.
- {{domxref("Node.localName")}} {{obsolete_inline}}{{readonlyInline}}
- Возвращает {{domxref("DOMString")}} представляющий локальную часть условного имени элемента. В Firefox 3.5 и более ранних версиях, свойство локального имени в верхнем регистре для HTML-элементов (но не XHTML элементов). В более поздних версиях, такого не произошло, и свойство находится в нижнем регистре для HTML и XHTML {{ gecko_minversion_inline("1.9.2") }}. Хотя недавние спецификации требуют от
localName
быть определённым как интерфейс {{domxref("Element")}}, но браузеры основанные на Gecko все ещё реализуют его как интерфейс {{domxref("Node")}}.
- {{domxref("Node.namespaceURI")}} {{obsolete_inline}}{{readonlyInline}}
- Пространство имён URI данного узла или
null,
если нет пространства имён. В Firefox 3.5 и более ранних версиях, HTML-элементы не имеют пространства имён. В более поздних версиях, HTML-элементы находятся в пространстве имён http://www.w3.org/1999/xhtml
для деревьев HTML и XML. {{ gecko_minversion_inline("1.9.2") }}
Хотя недавние спецификации требуют namespaceURI
быть определённым как интерфейс {{domxref("Element")}}, но браузеры основанные на Gecko все ещё реализуют его как интерфейс {{domxref("Node")}}.
- {{domxref("Node.nextSibling")}} {{readonlyInline}}
- Возвращает {{domxref("Node")}} представляющий следующий узел в древе или
null,
если не такого узла.
- {{domxref("Node.nodeName")}} {{readonlyInline}}
- Возвращает {{domxref("DOMString")}} содержащий имя
узла
. Структура имени будет отличаться от типа имени. Например, {{domxref("HTMLElement")}} будет содержать имя соответствующего тега: 'audio'
для {{domxref("HTMLAudioElement")}}, узел {{domxref("Text")}} будет строкой '#text'
или узел {{domxref("Document")}} будет строкой '#document'
.
- {{domxref("Node.nodePrincipal")}} {{Non-standard_inline()}}
- {{ Interface("nsIPrincipal") }} представляет основной узел.
- {{domxref("Node.nodeType")}}{{readonlyInline}}
- Возвращает беззнаковое короткое число
(unsigned short
) представляющее тип узла. Возможные значения:
Имя |
Значение |
ELEMENT_NODE |
1 |
ATTRIBUTE_NODE {{deprecated_inline()}} |
2 |
TEXT_NODE |
3 |
CDATA_SECTION_NODE {{deprecated_inline()}} |
4 |
ENTITY_REFERENCE_NODE {{deprecated_inline()}} |
5 |
ENTITY_NODE {{deprecated_inline()}} |
6 |
PROCESSING_INSTRUCTION_NODE |
7 |
COMMENT_NODE |
8 |
DOCUMENT_NODE |
9 |
DOCUMENT_TYPE_NODE |
10 |
DOCUMENT_FRAGMENT_NODE |
11 |
NOTATION_NODE {{deprecated_inline()}} |
12 |
- {{domxref("Node.nodeValue")}}
- Это {{domxref("DOMString")}}, представляющее значение объектов. Для большинства типов
Node
, возвращает null
и любой набор операция игнорируется. Для узлов типа TEXT_NODE
({{domxref("Text")}} objects), COMMENT_NODE
({{domxref("Comment")}} objects), и PROCESSING_INSTRUCTION_NODE
({{domxref("ProcessingInstruction")}} objects), значение соответствует текстовым данным, содержащихся в объекте.
- {{domxref("Node.ownerDocument")}} {{readonlyInline}}
- Возвращает {{domxref("Document")}} к которому принадлежит этот узел. Если нет связанного с ним документа, возвращает
null
.
- {{domxref("Node.parentNode")}} {{readonlyInline}}
- Возвращает {{domxref("Node")}} который является родителем этого узла. Если нет такого узла, по причине того, что узел находится вверху древа или не относится к древу, данное свойство вернёт
null
.
- {{domxref("Node.parentElement")}} {{readonlyInline}}
- Возвращает {{domxref("Element")}} который является родителем данного узла. Если узел не имеет родителя или если родитель не {{domxref("Element")}}, это свойство вернёт
null
.
- {{domxref("Node.prefix")}} {{obsolete_inline}}{{readonlyInline}}
- {{domxref("DOMString")}} представляющий префикс пространства имён узла или
null
если нет префикса точно определённого.
Хотя недавние спецификации требуют того, чтобы префикс
был определён как интерфейс {{domxref("Element")}}, браузеры основанные на Gecko ещё реализовывают его как интерфейс {{domxref("Node")}}.
- {{domxref("Node.previousSibling")}} {{readonlyInline}}
- Возвращают {{domxref("Node")}} представляющий предыдущий узел древа или
null
, если нет такого узла.
- {{domxref("Node.textContent")}}
- Это {{domxref("DOMString")}} представляющее текстовый контент элемента и всех его потомков.
Методы
Наследует методы от своих родителей {{domxref("EventTarget")}}.[1]
- {{domxref("Node.appendChild()")}}
- Вставляет {{domxref("Node")}} как последний дочерний узел данного элемента.
- {{domxref("Node.cloneNode()")}}
- Клонирует {{domxref("Node")}}, и опционально, все его компоненты. По умолчанию, оно клонирует содержимое узла.
- {{domxref("Node.compareDocumentPosition()")}}
-
- {{domxref("Node.contains()")}}
-
- {{domxref("Node.getFeature()")}} {{obsolete_inline}}
- ...
- {{domxref("Node.getUserData()")}} {{obsolete_inline}}
- Позволяет пользователю получить некоторый {{domxref("DOMUserData")}} от узла.
- {{domxref("Node.hasAttributes()")}} {{obsolete_inline}}
- Возвращает {{domxref("Boolean")}} показывающий, есть ли у элемента какие-либо атрибуты или нет.
- {{domxref("Node.hasChildNodes()")}}
- Возвращает {{domxref("Boolean")}} показывающий, есть ли у элемента дочерние узлы или нет.
- {{domxref("Node.insertBefore()")}}
- Вставляет первым {{domxref("Node")}} данный в качестве параметра, непосредственно перед вторым, потомком данного элемента {{domxref("Node")}}.
- {{domxref("Node.isDefaultNamespace()")}}
-
- {{domxref("Node.isEqualNode()")}}
-
- {{domxref("Node.isSameNode()")}} {{obsolete_inline}}
-
- {{domxref("Node.isSupported()")}} {{obsolete_inline}}
- Возвращает
Boolean
флаг содержащий результаты теста, реализует ли реализация DOM конкретную особенность и поддерживается ли эта особенность конкретным узлом.
- {{domxref("Node.lookupPrefix()")}}
-
- {{domxref("Node.lookupNamespaceURI()")}}
-
- {{domxref("Node.normalize()")}}
- Очищает все текстовые узлы под этим элементом (поглотить смежный, удалить пустой).
- {{domxref("Node.removeChild()")}}
- Удаляет дочерний узел из текущего элемента, который должен быть потомком текущего узла.
- {{domxref("Node.replaceChild()")}}
- Заменяет одного потомка {{domxref("Node")}} из существующего на второй указанный в параметре.
- {{domxref("Node.setUserData()")}} {{obsolete_inline}}
- Позволяет пользователю присоединить или удалить {{domxref("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();
Спецификации
{{Specifications}}
Совместимость с браузерами
{{Compat("api.Node")}}