Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 512357 of Node

  • Slug da revisão: Web/API/Node
  • Título da revisão: Node
  • ID da revisão: 512357
  • Criado:
  • Autor: carlosrainhaaraujo
  • É a revisão atual? Não
  • Comentário

Conteúdo da revisão

{{domref}}

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.

 

Propriedades

Herda propriedades do seu pai {{domxref("EventTarget")}}.[1]

{{domxref("Node.attributes")}} {{deprecated_inline}}
...
{{domxref("Node.baseURI")}} {{readonlyInline}}
Retorna uma {{domxref("DOMString")}} que represente o URL base. O conceito de URL base varia de língua para língua; em HTML corresponde: ao protocolo, nome do domínio e estrutura de directórios, ou seja, tudo até à última '/'.
{{domxref("Node.baseURIObject")}} {{Non-standard_inline()}} {{ Fx_minversion_inline("3") }}
(Não disponível para conteúdo Web). O objecto {{ Interface("nsIURI") }} apenas de leitura representa o URI base para o elemento.
{{domxref("Node.childNodes")}} {{readonlyInline}}
Retorna uma {{domxref("NodeList")}} activa quem contém todos os descendentes desse nó. Sendo {{domxref("NodeList")}} uma lista activa, significa que os descendentes do Node mudam, o objecto {{domxref("NodeList")}} é automaticamente actualizado.
{{domxref("Node.firstChild")}} {{readonlyInline}}
Retorna um {{domxref("Node")}} que representa o primeiro descendente directo do nó ou null se o nó não tiver descendentes.
{{domxref("Node.lastChild")}} {{readonlyInline}}
Retorna um {{domxref("Node")}} que representa o último descendente directo do Node, ou null caso o node não tenha descendentes.
{{domxref("Node.localName")}} {{readonlyInline}}{{obsolete_inline}}
Retorna uma {{domxref("DOMString")}} que representa a parte local do nome qualificado do elemento. No Firefox 3.5 e anteriores, a propriedade exibe o nome local do elemento HTML em maiúsculas (mas não o faz para elementos XHTML). Em versões posteriores, isto não se verifica, portanto a propriedade é exibida em letras minúsculas para ambos HTML e XHTML. {{ gecko_minversion_inline("1.9.2") }}. Apesar da especificação requerer que localName seja definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.
{{domxref("Node.namespaceURI")}} {{readonlyInline}}{{obsolete_inline}}
O URI do namspace do 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 https://www.w3.org/1999/xhtml quer na tree de HTML, quer na de XHTML {{ gecko_minversion_inline("1.9.2") }}
Apesar da especificação requerer namespaceURI definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.
{{domxref("Node.nextSibling")}} {{readonlyInline}}
Retorna um {{domxref("Node")}} que representa o próximo node na tree, ou null caso esse node não exista.
{{domxref("Node.nodeName")}} {{readonlyInline}}
Retorna uma {{domxref("DOMString")}} que contém o nome do 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'.
{{domxref("Node.nodePrincipal")}} {{Non-standard_inline()}}{{ Fx_minversion_inline("3") }}
Um {{ Interface("nsIPrincipal") }} representa um node principal.
{{domxref("Node.nodeType")}}{{readonlyInline}}
Retorna um 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
{{domxref("Node.nodeValue")}}
É a {{domxref("DOMString")}} que representa o valor de um objecto. Para a maioria dos tipos de 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.
{{domxref("Node.ownerDocument")}} {{readonlyInline}}
Retorna o {{domxref("Document")}} a que este node pertence. Se nenhum documento está associado com este, retorna null.
{{domxref("Node.parentNode")}} {{readonlyInline}}
Retorna um {{domxref("Node")}} que é o ascendente deste node. Se não existir tal node, como por exemplo se este node se encontra no nível raiz da tree ou se não consta nesta, esta propriedade retorna null.
{{domxref("Node.parentElement")}} {{readonlyInline}}
Retorna um {{domxref("Element")}} que é o ascendente deste node. Caso este node não tenha ascendente ou se o seu ascendente não é um {{domxref("Element")}}, esta propriedade retorna null.
{{domxref("Node.prefix")}} {{obsolete_inline}}
É uma {{domxref("DOMString")}} que representa o prefixo do namespace do node, ou null caso nenhum prefixo seja especificado.
Apesar da especificação requerer localName para ser definida no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.
{{domxref("Node.previousSibling")}} {{readonlyInline}}
Retorna um {{domxref("Node")}} que representa o node anterior na tree ou null caso o node não exista.
{{domxref("Node.textContent")}}
É uma {{domxref("DOMString")}} que representa o valor textual de um elemento e todos os seus descendentes.

Métodos

Herda métodos dos seus pais {{domxref("EventTarget")}}.[1]

{{domxref("Node.appendChild()")}}
Insere um {{domxref("Node")}} como último descendente do elemento em causa.
{{domxref("Node.cloneNode()")}}
Clona um {{domxref("Node")}} e, opcionalmente, todo o seu conteúdo. Por omissão, clona o conteúdo do node.
{{domxref("Node.compareDocumentPosition()")}}
 
{{domxref("Node.contains()")}}
 
{{domxref("Node.getFeature()")}} {{obsolete_inline}}
...
{{domxref("Node.getUserData()")}} {{deprecated_inline}}
Permite ao utilizador extrair alguma {{domxref("DOMUserData")}} do node.
{{domxref("Node.hasAttributes()")}} {{obsolete_inline}}
Retorna um {{domxref("Boolean")}} que indica se o elemento tem atributos ou não.
{{domxref("Node.hasChildNodes()")}}
Retorna um {{domxref("Boolean")}} que indica se o elemento tem descendentes ou não.
{{domxref("Node.insertBefore")}}
Insere o primeiro {{domxref("Node")}} dado num parâmetro imediatamente antes do segundo descendente deste {{domxref("Node")}}.
{{domxref("Node.isDefaultNamespace")}}
 
{{domxref("Node.isEqualNode")}}
 
{{domxref("Node.isSameNode")}} {{obsolete_inline}}
 
{{domxref("Node.isSupported")}} {{deprecated_inline}}
Retorna uma flag 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.
{{domxref("Node.lookupPrefix")}}
 
{{domxref("Node.lookupNamespaceURI")}}
 
{{domxref("Node.normalize")}}
Limpa todos os nodes textuais abaixo deste (converge os adjacentes e remove os vazios)
{{domxref("Node.removeChild")}}
Remove um node descendenter do elemento actual. Este deve ser um descendente do node actual.
{{domxref("Node.replaceChild")}}
Substitui um {{domxref("Node")}} descendente do actual com o fornecido no segundo parâmetro.
{{domxref("Node.setUserData")}} {{deprecated_inline}}
Permite a um utilizador anexar, ou remover {{domxref("DOMUserData")}} do node.
 

Exemplos

Percorrer todos os nodes descendentes

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);
}

Síntaxe

DOMComb(parentNode, callbackFunction);

Descrição

Recursivamente iterar sobre os nodes descendentes de um parentNode e o próprio parentNode, executando uma callbackFunction sobre estes como objectos this.

Parâmetros

parentNode
O node ascendente (Node Object).
callbackFunction
A função de callback (Function).

Exemplo de utilização

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ções

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.

 

Compatibilidade por browser

{{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")}}.

Fonte da revisão

<div>
 {{domref}}</div>
<p><code><strong>Node </strong></code>é 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.</p>
<p>As seguintes interfaces todas herdam de <code>Node</code> 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")}}</p>
<p>Estas interfaces podem retornar <code>null</code> 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.</p>
<p>&nbsp;</p>
<h2 id="Propriedades">Propriedades</h2>
<p><em>Herda propriedades do seu pai {{domxref("EventTarget")}}</em>.<sup>[1]</sup></p>
<dl>
 <dt>
  {{domxref("Node.attributes")}} {{deprecated_inline}}</dt>
 <dd>
  ...</dd>
 <dt>
  {{domxref("Node.baseURI")}} {{readonlyInline}}</dt>
 <dd>
  Retorna uma {{domxref("DOMString")}} que represente o URL base. O conceito de URL base varia de língua para língua; em HTML corresponde: ao protocolo, nome do domínio e estrutura de directórios, ou seja, tudo até à última '<code>/</code>'.</dd>
 <dt>
  {{domxref("Node.baseURIObject")}} {{Non-standard_inline()}} {{ Fx_minversion_inline("3") }}</dt>
 <dd>
  (Não disponível para conteúdo Web). O objecto {{ Interface("nsIURI") }} apenas de leitura representa o URI base para o elemento.</dd>
 <dt>
  {{domxref("Node.childNodes")}} {{readonlyInline}}</dt>
 <dd>
  Retorna uma {{domxref("NodeList")}} activa quem contém todos os descendentes desse nó. Sendo {{domxref("NodeList")}} uma lista activa, significa que os descendentes do <code>Node</code> mudam, o objecto {{domxref("NodeList")}} é automaticamente actualizado.</dd>
 <dt>
  {{domxref("Node.firstChild")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Node")}} que representa o primeiro descendente directo do nó ou <code>null</code> se o nó não tiver descendentes.</dd>
 <dt>
  {{domxref("Node.lastChild")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Node")}} que representa o último descendente directo do <code>Node, </code>ou <code>null</code> caso o <code>node</code> não tenha descendentes.</dd>
 <dt>
  {{domxref("Node.localName")}} {{readonlyInline}}{{obsolete_inline}}</dt>
 <dd>
  Retorna uma {{domxref("DOMString")}} que representa a parte local do nome qualificado do elemento. No Firefox 3.5 e anteriores, a propriedade exibe o nome local do elemento HTML em maiúsculas (mas não o faz para elementos XHTML). Em versões posteriores, isto não se verifica, portanto a propriedade é exibida em letras minúsculas para ambos HTML e XHTML. {{ gecko_minversion_inline("1.9.2") }}. Apesar da especificação requerer que <code>localName</code> seja definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.</dd>
 <dt>
  {{domxref("Node.namespaceURI")}} {{readonlyInline}}{{obsolete_inline}}</dt>
 <dd>
  O URI do namspace do <code>node</code> em causa, ou <code>null, </code>se não possuir<code> namespace</code>. 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 <code><a class="linkification-ext external" href="https://www.w3.org/1999/xhtml" title="Linkification: https://www.w3.org/1999/xhtml">https://www.w3.org/1999/xhtml</a></code> quer na tree de HTML, quer na de XHTML {{ gecko_minversion_inline("1.9.2") }}</dd>
 <dd>
  Apesar da especificação requerer <code>namespaceURI</code> definido no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.</dd>
 <dt>
  {{domxref("Node.nextSibling")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Node")}} que representa o próximo <code>node</code> na tree, ou <code>null</code> caso esse <code>node</code> não exista.</dd>
 <dt>
  {{domxref("Node.nodeName")}} {{readonlyInline}}</dt>
 <dd>
  Retorna uma {{domxref("DOMString")}} que contém o nome do <code>Node</code>. A estrutura do nome difere do tipo do nome. Exemplo: um {{domxref("HTMLElement")}} irá conter o nome da tag correspondente, como <code>'audio'</code> para um {{domxref("HTMLAudioElement")}}, um {{domxref("Text")}} node irá ter a string <code>'#text'</code>, ou então um {{domxref("Document")}} node irá ter uma string <code>'#document'</code>.</dd>
 <dt>
  {{domxref("Node.nodePrincipal")}} {{Non-standard_inline()}}{{ Fx_minversion_inline("3") }}</dt>
 <dd>
  Um {{ Interface("nsIPrincipal") }} representa um node principal.</dd>
 <dt>
  {{domxref("Node.nodeType")}}{{readonlyInline}}</dt>
 <dd>
  Retorna um <code>unsigned short</code> que representa o tipo de node. Os valores possíveis são:<br />
  <table class="standard-table">
   <tbody>
    <tr>
     <th scope="col">Nome</th>
     <th scope="col">Valor</th>
    </tr>
    <tr>
     <td><code>ELEMENT_NODE</code></td>
     <td><code>1</code></td>
    </tr>
    <tr>
     <td><code>ATTRIBUTE_NODE</code> {{deprecated_inline()}}</td>
     <td><code>2</code></td>
    </tr>
    <tr>
     <td><code>TEXT_NODE</code></td>
     <td><code>3</code></td>
    </tr>
    <tr>
     <td><code>CDATA_SECTION_NODE</code> {{deprecated_inline()}}</td>
     <td><code>4</code></td>
    </tr>
    <tr>
     <td><code>ENTITY_REFERENCE_NODE</code> {{deprecated_inline()}}</td>
     <td><code>5</code></td>
    </tr>
    <tr>
     <td><code>ENTITY_NODE</code> {{deprecated_inline()}}</td>
     <td><code>6</code></td>
    </tr>
    <tr>
     <td><code>PROCESSING_INSTRUCTION_NODE</code></td>
     <td><code>7</code></td>
    </tr>
    <tr>
     <td><code>COMMENT_NODE</code></td>
     <td><code>8</code></td>
    </tr>
    <tr>
     <td><code>DOCUMENT_NODE</code></td>
     <td><code>9</code></td>
    </tr>
    <tr>
     <td><code>DOCUMENT_TYPE_NODE</code></td>
     <td><code>10</code></td>
    </tr>
    <tr>
     <td><code>DOCUMENT_FRAGMENT_NODE</code></td>
     <td><code>11</code></td>
    </tr>
    <tr>
     <td><code>NOTATION_NODE</code> {{deprecated_inline()}}</td>
     <td><code>12</code></td>
    </tr>
   </tbody>
  </table>
 </dd>
 <dt>
  {{domxref("Node.nodeValue")}}</dt>
 <dd>
  É a {{domxref("DOMString")}} que representa o valor de um objecto. Para a maioria dos tipos de <code>Node</code>, isto retorna <code>null</code> e qualquer operação é ignorada. Para nodes do tipo <code>TEXT_NODE</code> (objectos {{domxref("Text")}}), <code>COMMENT_NODE</code> ({{domxref("Comment")}} objects), e <code>PROCESSING_INSTRUCTION_NODE</code> ({{domxref("ProcessingInstruction")}} objects), o valor corresponde ao valor textual contido no objecto.</dd>
 <dt>
  {{domxref("Node.ownerDocument")}} {{readonlyInline}}</dt>
 <dd>
  Retorna o {{domxref("Document")}} a que este node pertence. Se nenhum documento está associado com este, retorna <code>null</code>.</dd>
 <dt>
  {{domxref("Node.parentNode")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Node")}} que é o ascendente deste node. Se não existir tal node, como por exemplo se este node se encontra no nível raiz da tree ou se não consta nesta, esta propriedade retorna <code>null</code>.</dd>
 <dt>
  {{domxref("Node.parentElement")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Element")}} que é o ascendente deste node. Caso este node não tenha ascendente ou se o seu ascendente não é um {{domxref("Element")}}, esta propriedade retorna <code>null</code>.</dd>
 <dt>
  {{domxref("Node.prefix")}} {{obsolete_inline}}</dt>
 <dd>
  É uma {{domxref("DOMString")}} que representa o prefixo do namespace do node, ou <code>null</code> caso nenhum prefixo seja especificado.</dd>
 <dd>
  Apesar da especificação requerer <code>localName</code> para ser definida no interface {{domxref("Node")}}, browsers Gecko-based implementam-no no interface {{domxref("Element")}}.</dd>
 <dt>
  {{domxref("Node.previousSibling")}} {{readonlyInline}}</dt>
 <dd>
  Retorna um {{domxref("Node")}} que representa o node anterior na tree ou <code>null</code> caso o node não exista.</dd>
 <dt>
  {{domxref("Node.textContent")}}</dt>
 <dd>
  É uma {{domxref("DOMString")}} que representa o valor textual de um elemento e todos os seus descendentes.</dd>
</dl>
<h2 id="M.C3.A9todos">Métodos</h2>
<p><em>Herda métodos dos seus pais {{domxref("EventTarget")}}</em>.<sup>[1]</sup></p>
<dl>
 <dt>
  {{domxref("Node.appendChild()")}}</dt>
 <dd>
  Insere um {{domxref("Node")}} como último descendente do elemento em causa.</dd>
 <dt>
  {{domxref("Node.cloneNode()")}}</dt>
 <dd>
  Clona um {{domxref("Node")}} e, opcionalmente, todo o seu conteúdo. Por omissão, clona o conteúdo do node.</dd>
 <dt>
  {{domxref("Node.compareDocumentPosition()")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.contains()")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.getFeature()")}} {{obsolete_inline}}</dt>
 <dd>
  ...</dd>
 <dt>
  {{domxref("Node.getUserData()")}} {{deprecated_inline}}</dt>
 <dd>
  Permite ao utilizador extrair alguma {{domxref("DOMUserData")}} do node.</dd>
 <dt>
  {{domxref("Node.hasAttributes()")}} {{obsolete_inline}}</dt>
 <dd>
  Retorna um {{domxref("Boolean")}} que indica se o elemento tem atributos ou não.</dd>
 <dt>
  {{domxref("Node.hasChildNodes()")}}</dt>
 <dd>
  Retorna um {{domxref("Boolean")}} que indica se o elemento tem descendentes ou não.</dd>
 <dt>
  {{domxref("Node.insertBefore")}}</dt>
 <dd>
  Insere o primeiro {{domxref("Node")}} dado num parâmetro imediatamente antes do segundo descendente deste {{domxref("Node")}}.</dd>
 <dt>
  {{domxref("Node.isDefaultNamespace")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.isEqualNode")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.isSameNode")}} {{obsolete_inline}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.isSupported")}} {{deprecated_inline}}</dt>
 <dd>
  Retorna uma flag <a href="https://developer.mozilla.org/en-US/docs/Web/API/Boolean" title="The Boolean object is an object wrapper for a boolean value."><code>Boolean</code></a> que contém o resultado de um teste à implementação do DOM para aferir o suporte deste ou do node a uma determinada propriedade.</dd>
 <dt>
  {{domxref("Node.lookupPrefix")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.lookupNamespaceURI")}}</dt>
 <dd>
  &nbsp;</dd>
 <dt>
  {{domxref("Node.normalize")}}</dt>
 <dd>
  Limpa todos os nodes textuais abaixo deste (converge os adjacentes e remove os vazios)</dd>
 <dt>
  {{domxref("Node.removeChild")}}</dt>
 <dd>
  Remove um node descendenter do elemento actual. Este deve ser um descendente do node actual.</dd>
 <dt>
  {{domxref("Node.replaceChild")}}</dt>
 <dd>
  Substitui um {{domxref("Node")}} descendente do actual com o fornecido no segundo parâmetro.</dd>
 <dt>
  {{domxref("Node.setUserData")}} {{deprecated_inline}}</dt>
 <dd>
  Permite a um utilizador anexar, ou remover {{domxref("DOMUserData")}} do node.</dd>
 <dd>
  &nbsp;</dd>
</dl>
<h2 id="Exemplos">Exemplos</h2>
<h3 id="Percorrer_todos_os_nodes_descendentes">Percorrer todos os nodes descendentes</h3>
<p>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).</p>
<pre class="brush: js">
function DOMComb (oParent, oCallback) {
&nbsp; if (oParent.hasChildNodes()) {
&nbsp;&nbsp;&nbsp; for (var oNode = oParent.firstChild; oNode; oNode = oNode.nextSibling) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOMComb(oNode, oCallback);
&nbsp;&nbsp;&nbsp; }
&nbsp; }
&nbsp; oCallback.call(oParent);
}</pre>
<h4 id="S.C3.ADntaxe">Síntaxe</h4>
<pre>
DOMComb(parentNode, callbackFunction);</pre>
<h4 id="Descri.C3.A7.C3.A3o">Descrição</h4>
<p>Recursivamente iterar sobre os nodes descendentes de um <code>parentNode </code>e o próprio <code>parentNode</code>, executando uma <code>callbackFunction</code> sobre estes como objectos <a href="/en-US/docs/JavaScript/Reference/Operators/this" title="en-US/docs/JavaScript/Reference/Operators/this"><code>this</code></a>.</p>
<h4 id="Par.C3.A2metros">Parâmetros</h4>
<dl>
 <dt>
  <code>parentNode</code></dt>
 <dd>
  O node ascendente (<code><strong>Node</strong> <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object" title="en-US/docs/JavaScript/Reference/Global_Objects/Object">Object</a></code>).</dd>
 <dt>
  <code>callbackFunction</code></dt>
 <dd>
  A função de callback (<a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function" title="en-US/docs/JavaScript/Reference/Global_Objects/Function"><code>Function</code></a>).</dd>
</dl>
<h4 id="Exemplo_de_utiliza.C3.A7.C3.A3o">Exemplo de utilização</h4>
<p>O exemplo seguinte envia para a <code>console.log </code>o conteúdo textual do body:</p>
<pre class="brush: js">
function printContent () {
&nbsp; if (this.nodeValue) { console.log(this.nodeValue); }
}

onload = function () {
&nbsp; DOMComb(document.body, printContent);
};</pre>
<h2 id="Especifica.C3.A7.C3.B5es">Especificações</h2>
<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Especificação</th>
   <th scope="col">Estado</th>
   <th scope="col">Comentários</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('DOM WHATWG', '#interface-node', 'Node')}}</td>
   <td>{{Spec2('DOM WHATWG')}}</td>
   <td>Removidas as seguintes propriedades: <code>attributes</code>, <code>namespaceURI</code>, <code>prefix</code>, e <code>localName</code>.<br />
    Removidos os seguintes métodos: <code>isSupported()</code>, <code>hasAttributes()</code>, <code>isSameNode()</code>, <code>getFeature()</code>, <code>setUserData()</code>, e <code>getUserData()</code>.</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM3 Core', 'core.html#ID-1950641247', 'Node')}}</td>
   <td>{{Spec2('DOM3 Core')}}</td>
   <td>Os métodos <code>insertBefore()</code>, <code>replaceChild()</code>, <code>removeChild()</code>, e <code>appendChild()</code> retornam mais um tipo de erro&nbsp; (<code>NOT_SUPPORTED_ERR</code>) caso sejam chamados no {{domxref("Document")}}.<br />
    O método <code>normalize()</code> foi modificado para que o node {{domxref("Text")}} possa também ser normalizado se a flag correcta de {{domxref("DOMConfiguration")}} estiver definida.<br />
    Adicionados os seguintes métodos: <code>compareDocumentPosition()</code>, <code>isSameNode()</code>, <code>lookupPrefix()</code>, <code>isDefaultNamespace()</code>, <code>lookupNamespaceURI()</code>, <code>isEqualNode()</code>, <code>getFeature()</code>, <code>setUserData()</code>, e <code>getUserData().</code><br />
    Adicionadas as seguintes propriedades: <code>baseURI</code> e <code>textContent</code>.</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM2 Core', 'core.html#ID-1950641247', 'Node')}}</td>
   <td>{{Spec2('DOM2 Core')}}</td>
   <td>A propriedade <code>ownerDocument</code> foi ligeiramente alterada para que um&nbsp; {{domxref("DocumentFragment")}} possa também retornar <code>null</code>.<br />
    Adicionadas as seguintes propriedades: <code>namespaceURI</code>, <code>prefix</code>, e <code>localName</code>.<br />
    Adicionados os seguintes métodos: <code>normalize()</code>, <code>isSupported()</code> and <code>hasAttributes()</code>.</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM1', 'level-one-core.html#ID-1950641247', 'Node')}}</td>
   <td>{{Spec2('DOM1')}}</td>
   <td>Definição inicial.</td>
  </tr>
 </tbody>
</table>
<p>&nbsp;</p>
<h2 id="Compatibilidade_por_browser">Compatibilidade por browser</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Característica</th>
    <th>Chrome</th>
    <th>Firefox (Gecko)</th>
    <th>Internet Explorer</th>
    <th>Opera</th>
    <th>Safari</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatGeckoDesktop("1.0")}}</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatVersionUnknown}}</td>
   </tr>
   <tr>
    <td><code>getFeature()</code>{{obsolete_inline}}</td>
    <td>{{CompatNo}}</td>
    <td>Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("6.0")}}.<br />
     Removida em: {{CompatGeckoDesktop("7.0")}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatNo}}</td>
    <td>{{CompatNo}}</td>
   </tr>
   <tr>
    <td><code>getUserData()</code>, <code>setUserData()</code> e <code>hasAttributes()</code> {{deprecated_inline}}</td>
    <td>{{CompatNo}}</td>
    <td>Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("21.0")}}.<br />
     Removida em: {{CompatGeckoDesktop("22.0")}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatNo}}</td>
    <td>{{CompatNo}}</td>
   </tr>
   <tr>
    <td><code>isSameNode()</code> {{obsolete_inline}}</td>
    <td>{{CompatNo}}</td>
    <td>Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("9.0")}}.<br />
     Removida em: {{CompatGeckoDesktop("10.0")}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatNo}}</td>
    <td>{{CompatNo}}</td>
   </tr>
   <tr>
    <td><code>isSupported()</code> {{obsolete_inline}}</td>
    <td>{{CompatUnknown}}</td>
    <td>Suportada desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("21.0")}}.<br />
     Removida em: {{CompatGeckoDesktop("22.0")}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatUnknown}}</td>
   </tr>
  </tbody>
 </table>
</div>
<div id="compat-mobile">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Android</th>
    <th>Firefox Mobile (Gecko)</th>
    <th>IE Mobile</th>
    <th>Opera Mobile</th>
    <th>Safari Mobile</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatGeckoMobile("1.0")}}</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatVersionUnknown}}</td>
    <td>{{CompatVersionUnknown}}</td>
   </tr>
   <tr>
    <td><code>getFeature()</code>{{obsolete_inline}}</td>
    <td>{{CompatNo}}</td>
    <td>Suportade desde: {{CompatGeckoDesktop("1.0")}} até {{CompatGeckoDesktop("6.0")}}.<br />
     Removida em: {{CompatGeckoDesktop("7.0")}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatNo}}</td>
    <td>{{CompatNo}}</td>
   </tr>
  </tbody>
 </table>
</div>
<p>[1] Webkit e Blink incorrectamente não fazem com que&nbsp; <code>Node</code> herde de {{domxref("EventTarget")}}.</p>
Reverter para esta revisão