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 = 1Node.ATTRIBUTE_NODE = 2Node.TEXT_NODE = 3Node.CDATA_SECTION_NODE = 4Node.ENTITY_REFERENCE_NODE = 5Node.ENTITY_NODE = 6Node.PROCESSING_INSTRUCTION_NODE = 7Node.COMMENT_NODE = 8Node.DOCUMENT_NODE = 9Node.DOCUMENT_TYPE_NODE = 10Node.DOCUMENT_FRAGMENT_NODE = 11Node.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.