Um 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,
ounull
caso onode
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, ounull,
se não possuirnamespace
. No Firefox 3.5 e anteriores, elementos HTML não se encontravam em qualquer namespace. Em versões posteriores, elementos HTML estão no namespacehttps://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, ounull
caso essenode
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 retornanull
e qualquer operação é ignorada. Para nodes do tipoTEXT_NODE
(objectos {{domxref("Text")}}),COMMENT_NODE
({{domxref("Comment")}} objects), ePROCESSING_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
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")}}.