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
относительно их как эти
объекты.
Параметры
Пример использования
Следующий пример отправляет в 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
.