--- title: Node slug: Web/API/Node tags: - API - DOM - Element - Interface - Node - WebAPI translation_of: Web/API/Node ---
Node é uma interface da qual uma varidade de tipos do DOM herdam e permite que estes vários tipos seja tratados (ou testados) de forma similar.
As seguintes interfaces todas herdam de Node os seus métodos e propriedades:{{domxref("Document")}}, {{domxref("Element")}}, {{domxref("CharacterData")}} (que {{domxref("Text")}}, {{domxref("Comment")}}, e {{domxref("CDATASection")}} herdam), {{domxref("ProcessingInstruction")}}, {{domxref("DocumentFragment")}}, {{domxref("DocumentType")}}, {{domxref("Notation")}}, {{domxref("Entity")}}, {{domxref("EntityReference")}}
Estas interfaces podem retornar null em casos particulares, em que estes métodos e propriedades não são relevantes. Podem lançar uma excepção - por exempo, ao adicionar nós-filho a um tipo de nó para o qual não está prevista a existência de nós descendentes.
Herda propriedades do seu pai {{domxref("EventTarget")}}.[1]
/'.Node mudam, o objecto {{domxref("NodeList")}} é automaticamente actualizado.null se o nó não tiver descendentes.Node, ou null caso o node não tenha descendentes.localName seja definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.node em causa, ou null, se não possuir namespace. No Firefox 3.5 e anteriores, elementos HTML não se encontravam em qualquer namespace. Em versões posteriores, elementos HTML estão no namespace http://www.w3.org/1999/xhtml quer na tree de HTML, quer na de XHTML {{ gecko_minversion_inline("1.9.2") }}namespaceURI definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.node na tree, ou null caso esse node não exista.Node. A estrutura do nome difere do tipo do nome. Exemplo: um {{domxref("HTMLElement")}} irá conter o nome da tag correspondente, como 'audio' para um {{domxref("HTMLAudioElement")}}, um {{domxref("Text")}} node irá ter a string '#text', ou então um {{domxref("Document")}} node irá ter uma string '#document'.unsigned short que representa o tipo de node. Os valores possíveis são:| Nome | Valor |
|---|---|
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, isto retorna null e qualquer operação é ignorada. Para nodes do tipo TEXT_NODE (objectos {{domxref("Text")}}), COMMENT_NODE ({{domxref("Comment")}} objects), e PROCESSING_INSTRUCTION_NODE ({{domxref("ProcessingInstruction")}} objects), o valor corresponde ao valor textual contido no objecto.null.null.null.null caso nenhum prefixo seja especificado.localName para ser definida no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.null caso o node não exista.Herda métodos dos seus pais {{domxref("EventTarget")}}.[1]
Boolean que contém o resultado de um teste à implementação do DOM para aferir o suporte deste ou do node a uma determinada propriedade.A seguinte função itera sobre os nodes descendentes de um node recursivamente e executa uma função de callback sobre os mesmos (e sobre o próprio node-pai).
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);
Recursivamente iterar sobre os nodes descendentes de um parentNode e o próprio parentNode, executando uma callbackFunction sobre estes como objectos this.
parentNodeNode Object).callbackFunctionFunction).O exemplo seguinte envia para a console.log o conteúdo textual do body:
function printContent () {
if (this.nodeValue) { console.log(this.nodeValue); }
}
onload = function () {
DOMComb(document.body, printContent);
};
| Especificação | Estado | Comentários |
|---|---|---|
| {{SpecName('DOM WHATWG', '#interface-node', 'Node')}} | {{Spec2('DOM WHATWG')}} | Removidas as seguintes propriedades: attributes, namespaceURI, prefix, e localName.Removidos os seguintes métodos: isSupported(), hasAttributes(), isSameNode(), getFeature(), setUserData(), e getUserData(). |
| {{SpecName('DOM3 Core', 'core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM3 Core')}} | Os métodos insertBefore(), replaceChild(), removeChild(), e appendChild() retornam mais um tipo de erro (NOT_SUPPORTED_ERR) caso sejam chamados no {{domxref("Document")}}.O método normalize() foi modificado para que o node {{domxref("Text")}} possa também ser normalizado se a flag correcta de {{domxref("DOMConfiguration")}} estiver definida.Adicionados os seguintes métodos: compareDocumentPosition(), isSameNode(), lookupPrefix(), isDefaultNamespace(), lookupNamespaceURI(), isEqualNode(), getFeature(), setUserData(), e getUserData().Adicionadas as seguintes propriedades: baseURI e textContent. |
| {{SpecName('DOM2 Core', 'core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM2 Core')}} | A propriedade ownerDocument foi ligeiramente alterada para que um {{domxref("DocumentFragment")}} possa também retornar null.Adicionadas as seguintes propriedades: namespaceURI, prefix, e localName.Adicionados os seguintes métodos: normalize(), isSupported() and hasAttributes(). |
| {{SpecName('DOM1', 'level-one-core.html#ID-1950641247', 'Node')}} | {{Spec2('DOM1')}} | Definição inicial. |
{{CompatibilityTable}}
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
getFeature(){{obsolete_inline}} |
{{CompatNo}} | Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("6.0")}}. Removida em: {{CompatGeckoDesktop("7.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
getUserData(), setUserData() e hasAttributes() {{deprecated_inline}} |
{{CompatNo}} | Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("21.0")}}. Removida em: {{CompatGeckoDesktop("22.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
isSameNode() {{obsolete_inline}} |
{{CompatNo}} | Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("9.0")}}. Removida em: {{CompatGeckoDesktop("10.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
isSupported() {{obsolete_inline}} |
{{CompatUnknown}} | Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("21.0")}}. Removida em: {{CompatGeckoDesktop("22.0")}} |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
| Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
getFeature(){{obsolete_inline}} |
{{CompatNo}} | Suportade desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("6.0")}}. Removida em: {{CompatGeckoDesktop("7.0")}} |
{{CompatUnknown}} | {{CompatNo}} | {{CompatNo}} |
[1] Webkit e Blink incorrectamente não fazem com que Node herde de {{domxref("EventTarget")}}.