--- title: Node slug: Web/API/Node tags: - API - DOM translation_of: Web/API/Node ---
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("NodeList")}} автоматически обновляется. null,
если узел не имеет потомков.null
, если узел не имеет потомков.localName
быть определенным как интерфейс {{domxref("Element")}}, но браузеры основанные на Gecko все еще реализуют его как интерфейс {{domxref("Node")}}.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")}}.null,
если не такого узла.узла
. Структура имени будет отличаться от типа имени. Например, {{domxref("HTMLElement")}} будет содержать имя соответствующего тега: 'audio'
для {{domxref("HTMLAudioElement")}}, узел {{domxref("Text")}} будет строкой '#text'
или узел {{domxref("Document")}} будет строкой '#document'
.(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 |
Node
, возвращает null
и любой набор операция игнорируется. Для узлов типа TEXT_NODE
({{domxref("Text")}} objects), COMMENT_NODE
({{domxref("Comment")}} objects), и PROCESSING_INSTRUCTION_NODE
({{domxref("ProcessingInstruction")}} objects), значение соответствует текстовым данным, содержащихся в объекте.null
. null
.null
.null
если нет префикса точно определенного.префикс
был определен как интерфейс {{domxref("Element")}}, браузеры основанные на Gecko еще реализовывают его как интерфейс {{domxref("Node")}}.null
, если нет такого узла.Наследует методы от своих родителей {{domxref("EventTarget")}}.[1]
Boolean
флаг содержащий результаты теста, реализует ли реализация DOM конкретную особенность и поддерживается ли эта особенность конкретным узлом.Следующая функция рекурсивный цикл всех дочерних узлов узла и она исполняет вызов функции относительно их (и себя относительно родительского узла).
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();
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('DOM WHATWG', '#interface-node', 'Node')}} | {{Spec2('DOM WHATWG')}} | Удалены следующие свойства: attributes , namespaceURI , prefix , и localName .Удалены следующие методы: isSupported() , hasAttributes() , isSameNode() , getFeature() , setUserData() , и getUserData() . |
{{SpecName('DOM3 Core', 'core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM3 Core')}} | Методы insertBefore() , replaceChild() , removeChild() , and appendChild() возвращают еще один вид ошибок (NOT_SUPPORTED_ERR ) если вызваны из {{domxref("Document")}}.Метод normalize() был модифицирован таким образом, что узел {{domxref("Text")}} также может быть нормализован, если надлежащий флаг {{domxref("DOMConfiguration")}} установлен.Добавлены следующие методы: compareDocumentPosition() , isSameNode() , lookupPrefix() , isDefaultNamespace() , lookupNamespaceURI() , isEqualNode() , getFeature() , setUserData() , and getUserData(). Добавлены следующие свойства: baseURI and textContent . |
{{SpecName('DOM2 Core', 'core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM2 Core')}} | Свойство ownerDocument был слегка изменен, так что {{domxref("DocumentFragment")}} также возвращает null .Добавлены следующие свойства: namespaceURI , prefix , and localName .Добавлены следующие методы: normalize() , isSupported() and hasAttributes() . |
{{SpecName('DOM1', 'level-one-core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM1')}} | Изначальное описание. |
{{CompatibilityTable}}
Свойство | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
getFeature() {{obsolete_inline}} |
{{CompatNo}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("6.0")}}. Удалено в {{CompatGeckoDesktop("7.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
getUserData() , setUserData() and hasAttributes() {{deprecated_inline}} |
{{CompatNo}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("21.0")}}. Удалено в {{CompatGeckoDesktop("22.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
isSameNode() {{obsolete_inline}} |
{{CompatNo}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("9.0")}}. Удалено в {{CompatGeckoDesktop("10.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
isSupported() {{obsolete_inline}} |
{{CompatUnknown}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("21.0")}}. Удалено в {{CompatGeckoDesktop("22.0")}} |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
attributes |
{{CompatNo}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("21.0")}}. Перемещено к {{domxref("Element")}} в {{CompatGeckoDesktop("22.0")}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Свойство | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
getFeature() {{obsolete_inline}} |
{{CompatNo}} | Поддерживаемые от {{CompatGeckoDesktop("1.0")}} до {{CompatGeckoDesktop("6.0")}}. Удалено в {{CompatGeckoDesktop("7.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
[1] Webkit и Blink неверно не делают Node
наследуя от {{domxref("EventTarget")}}.