Una vez que DOM ha creado de forma automática el árbol completo de nodos de la página, ya es posible utilizar sus funciones para obtener información sobre los nodos o manipular su contenido. JavaScript crea el objeto Node
para definir las propiedades y métodos necesarios para procesar y manipular los documentos.
En primer lugar, el objeto Node
define las siguientes constantes para la identificación de los distintos tipos de nodos:
Node.ELEMENT_NODE
=1
Node.ATTRIBUTE_NODE
=2
Node.TEXT_NODE
=3
Node.CDATA_SECTION_NODE
=4
Node.ENTITY_REFERENCE_NODE
=5
Node.ENTITY_NODE
=6
Node.PROCESSING_INSTRUCTION_NODE
=7
Node.COMMENT_NODE
=8
Node.DOCUMENT_NODE
=9
Node.DOCUMENT_TYPE_NODE
=10
Node.DOCUMENT_FRAGMENT_NODE
=11
Node.NOTATION_NODE
=12
Además de estas constantes, Node
proporciona las siguientes propiedades y métodos:
Propiedad/Método | Valor devuelto | Descripción |
---|---|---|
nodeName |
String |
El nombre del nodo (no está definido para algunos tipos de nodo) |
nodeValue |
String |
El valor del nodo (no está definido para algunos tipos de nodo) |
nodeType |
Number |
Una de las 12 constantes definidas anteriormente |
ownerDocument |
Document |
Referencia del documento al que pertenece el nodo |
firstChild |
Node |
Referencia del primer nodo de la lista childNodes |
lastChild |
Node |
Referencia del último nodo de la lista childNodes |
childNodes |
NodeList |
Lista de todos los nodos hijo del nodo actual |
previousSibling |
Node |
Referencia del nodo hermano anterior o null si este nodo es el primer hermano |
nextSibling |
Node |
Referencia del nodo hermano siguiente o null si este nodo es el último hermano |
hasChildNodes() |
Bolean |
Devuelve true si el nodo actual tiene uno o más nodos hijo |
attributes |
NamedNodeMap |
Se emplea con nodos de tipo Element . Contiene objetos de tipo Attr que definen todos los atributos del elemento |
appendChild(nodo) |
Node |
Añade un nuevo nodo al final de la lista childNodes |
removeChild(nodo) |
Node |
Elimina un nodo de la lista childNodes |
replaceChild(nuevoNodo, anteriorNodo) |
Node |
Reemplaza el nodo anteriorNodo por el nodo nuevoNodo |
insertBefore(nuevoNodo, anteriorNodo) |
Node |
Inserta el nodo nuevoNodo antes que la posición del nodo anteriorNodo dentro de la lista childNodes |
Los métodos y propiedades incluidas en la tabla anterior son específicos de XML, aunque pueden aplicarse a todos los lenguajes basados en XML, como por ejemplo XHTML. Para las páginas creadas con HTML, los navegadores hacen como si HTML estuviera basado en XML y lo tratan de la misma forma. No obstante, se han definido algunas extensiones y particularidades específicas para XHTML y HTML.