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.