Node
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
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
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
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
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.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();
Спецификации
Specification |
---|
DOM Standard # interface-node |
Совместимость с браузерами
BCD tables only load in the browser