4.3. La interfaz Node
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.