Node
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.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