Node

by 2 contributors:

This translation is incomplete. Please help translate this article from English.

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:Document, Element, CharacterData (que Text, Comment, e CDATASection herdam), ProcessingInstruction, DocumentFragment, DocumentType, Notation, Entity, 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 EventTarget.[1]

Node.attributes
...
Node.baseURI Read only
Retorna uma 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 '/'.
Node.baseURIObject
(Não disponível para conteúdo Web). O objecto nsIURI apenas de leitura representa o URI base para o elemento.
Node.childNodes Read only
Retorna uma NodeList activa quem contém todos os descendentes desse nó. Sendo NodeList uma lista activa, significa que os descendentes do Node mudam, o objecto NodeList é automaticamente actualizado.
Node.firstChild Read only
Retorna um Node que representa o primeiro descendente directo do nó ou null se o nó não tiver descendentes.
Node.lastChild Read only
Retorna um Node que representa o último descendente directo do Node, ou null caso o node não tenha descendentes.
Node.localName Read only
Retorna uma 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. . Apesar da especificação requerer que localName seja definido no interface Node, browsers Gecko-based implementam-no no interface Element.
Node.namespaceURI Read only
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 http://www.w3.org/1999/xhtml quer na tree de HTML, quer na de XHTML
Apesar da especificação requerer namespaceURI definido no interface Node, browsers Gecko-based implementam-no no interface Element.
Node.nextSibling Read only
Retorna um Node que representa o próximo node na tree, ou null caso esse node não exista.
Node.nodeName Read only
Retorna uma DOMString que contém o nome do Node. A estrutura do nome difere do tipo do nome. Exemplo: um HTMLElement irá conter o nome da tag correspondente, como 'audio' para um HTMLAudioElement, um Text node irá ter a string '#text', ou então um Document node irá ter uma string '#document'.
Node.nodePrincipal
Um nsIPrincipal representa um node principal.
Node.nodeTypeRead only
Retorna um unsigned short que representa o tipo de node. Os 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
Node.nodeValue
É a 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 Text), COMMENT_NODE (Comment objects), e PROCESSING_INSTRUCTION_NODE (ProcessingInstruction objects), o valor corresponde ao valor textual contido no objecto.
Node.ownerDocument Read only
Retorna o Document a que este node pertence. Se nenhum documento está associado com este, retorna null.
Node.parentNode Read only
Retorna um 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.
Node.parentElement Read only
Retorna um Element que é o ascendente deste node. Caso este node não tenha ascendente ou se o seu ascendente não é um Element, esta propriedade retorna null.
Node.prefix
É uma 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 Node, browsers Gecko-based implementam-no no interface Element.
Node.previousSibling Read only
Retorna um Node que representa o node anterior na tree ou null caso o node não exista.
Node.textContent
É uma DOMString que representa o valor textual de um elemento e todos os seus descendentes.

Métodos

Herda métodos dos seus pais EventTarget.[1]

Node.appendChild()
Insere um Node como último descendente do elemento em causa.
Node.cloneNode()
Clona um Node e, opcionalmente, todo o seu conteúdo. Por omissão, clona o conteúdo do node.
Node.compareDocumentPosition()
 
Node.contains()
 
Node.getFeature()
...
Node.getUserData()
Permite ao utilizador extrair alguma DOMUserData do node.
Node.hasAttributes()
Retorna um Boolean que indica se o elemento tem atributos ou não.
Node.hasChildNodes()
Retorna um Boolean que indica se o elemento tem descendentes ou não.
Node.insertBefore
Insere o primeiro Node dado num parâmetro imediatamente antes do segundo descendente deste Node.
Node.isDefaultNamespace
 
Node.isEqualNode
 
Node.isSameNode
 
Node.isSupported
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.
Node.lookupPrefix
 
Node.lookupNamespaceURI
 
Node.normalize
Limpa todos os nodes textuais abaixo deste (converge os adjacentes e remove os vazios)
Node.removeChild
Remove um node descendenter do elemento actual. Este deve ser um descendente do node actual.
Node.replaceChild
Substitui um Node descendente do actual com o fornecido no segundo parâmetro.
Node.setUserData
Permite a um utilizador anexar, ou remover 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
DOM
The definition of 'Node' in that specification.
Living Standard Removidas as seguintes propriedades: attributes, namespaceURI, prefix, e localName.
Removidos os seguintes métodos: isSupported(), hasAttributes(), isSameNode(), getFeature(), setUserData(), e getUserData().
Document Object Model (DOM) Level 3 Core Specification
The definition of 'Node' in that specification.
Recommendation Os métodos insertBefore(), replaceChild(), removeChild(), e appendChild() retornam mais um tipo de erro  (NOT_SUPPORTED_ERR) caso sejam chamados no Document.
O método normalize() foi modificado para que o node Text possa também ser normalizado se a flag correcta de 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.
Document Object Model (DOM) Level 2 Core Specification
The definition of 'Node' in that specification.
Recommendation A propriedade ownerDocument foi ligeiramente alterada para que um  DocumentFragment possa também retornar null.
Adicionadas as seguintes propriedades: namespaceURI, prefix, e localName.
Adicionados os seguintes métodos: normalize(), isSupported() and hasAttributes().
Document Object Model (DOM) Level 1 Specification
The definition of 'Node' in that specification.
Recommendation Definição inicial.

 

Compatibilidade por browser

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) 1.0 (1.7 or earlier) (Yes) (Yes) (Yes)
getFeature() Not supported Suportada desde: 1.0 (1.7 or earlier) até 6.0 (6.0).
Removida em: 7.0 (7.0)
? Not supported Not supported
getUserData(), setUserData() e hasAttributes() Not supported Suportada desde: 1.0 (1.7 or earlier) até 21.0 (21.0).
Removida em: 22.0 (22.0)
? Not supported Not supported
isSameNode() Not supported Suportada desde: 1.0 (1.7 or earlier) até 9.0 (9.0).
Removida em: 10.0 (10.0)
? Not supported Not supported
isSupported() ? Suportada desde: 1.0 (1.7 or earlier) até 21.0 (21.0).
Removida em: 22.0 (22.0)
? ? ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) 1.0 (1.0) (Yes) (Yes) (Yes)
getFeature() Not supported Suportade desde: 1.0 (1.7 or earlier) até 6.0 (6.0).
Removida em: 7.0 (7.0)
? Not supported Not supported

[1] Webkit e Blink incorrectamente não fazem com que  Node herde de EventTarget.

Etiquetas do documento e colaboradores

Contributors to this page: khalid32, carlosrainhaaraujo
Última atualização por: khalid32,