--- title: Node slug: Web/API/Node translation_of: Web/API/Node ---
Node é uma interface da qual diversos tipos do DOM herdam, e que permite que esses tipos sejam tratados de forma similar, por exemplo, herdando os mesmos métodos ou sendo testados da mesma forma.
Todos os tipos a seguir herdam essa interface e seus métodos e propriedades (apesar de que alguns podem devolver null em casos particulares em que o método ou a propriedade não são relevantes; ou lançar uma exceção quando adicionando um filho a um tipo de nó que não pode ter filhos): {{domxref("Document")}}, {{domxref("Element")}}, {{domxref("Attr")}}, {{domxref("CharacterData")}} (do qual {{domxref("Text")}}, {{domxref("Comment")}}, e {{domxref("CDATASection")}} herdam), {{domxref("ProcessingInstruction")}}, {{domxref("DocumentFragment")}}, {{domxref("DocumentType")}}, {{domxref("Notation")}}, {{domxref("Entity")}}, {{domxref("EntityReference")}}
{{InheritanceDiagram}}
Herda propriedades de seus pais, {{domxref("EventTarget")}}.[1]
'/'.null, caso o nó não tenha nenhum filho.null, caso o elemento não tenha nenhum filho.null, caso tal nó não exista.Node. A estrutura do nome irá mudar conforme o tipo do elemento. Veja as diferenças na documentação do método {{domxref("Node.nodeName")}}. unsigned short representando o tipo do nodo. Valores possíveis são:| Nome | Valor |
|---|---|
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 |
null.null.null se não existe tal nodo.Nota: No Firefox 3.5 e nas versões anteriores, a propriedade coloca em caixa alta o nome local de elementos HTML (mas não elementos XHTML). Em versões posteriores, isso não acontece, então a propriedade está em caixa baixa para ambos HTML e XHTML. {{gecko_minversion_inline("1.9.2")}}
null se não estiver no espaço de nomes.
Nota: No Firefox 3.5 e nas versões anteriores, elementos HTML estão no espaço de nomes. Em versões posteriores, elementos HTML estão em http://www.w3.org/1999/xhtml/, nas árvores HTML e XML. {{gecko_minversion_inline("1.9.2")}}
null se nenhum prefixo é especificado.
Veja também {{domxref("Node.nodeType")}}
| Nome | Valor |
|---|---|
ELEMENT_NODE |
1 |
ATTRIBUTE_NODE |
2 |
TEXT_NODE |
3 |
DATA_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 |
DOCUMENT_POSITION_DISCONNECTED |
0x01 |
DOCUMENT_POSITION_PRECEDING |
0x02 |
DOCUMENT_POSITION_FOLLOWING |
0x04 |
DOCUMENT_POSITION_CONTAINS |
0x08 |
DOCUMENT_POSITION_CONTAINED_BY |
0x10 |
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC |
0x20 |
A função a seguir percorre todos os nós filhos de um nó recursivamente e executa uma função de callback em cada um deles (e no nó pai também).
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);
Percorre todos os nós filhos de parentNode recursivamente e o próprio parentNode e executa a callbackFunction em cada um deles como this.
parentNodeObject do tipo Node).callbackFunctionFunction).O exemplo a seguir envia para a função console.log o conteúdo textual do body:
function imprimeConteudo () {
if (this.nodeValue) { console.log(this.nodeValue); }
}
onload = function () {
DOMComb(document.body, imprimeConteudo);
};