Acceder a los nodos y a sus propiedades (que se verá más adelante) es sólo una parte de las manipulaciones habituales en las páginas. Las otras operaciones habituales son las de crear y eliminar nodos del árbol DOM, es decir, crear y eliminar "trozos" de la página web.
5.4.1. Creación de elementos XHTML simples
Como se ha visto, un elemento XHTML sencillo, como por ejemplo un párrafo, genera dos nodos: el primer nodo es de tipo Element
y representa la etiqueta <p>
y el segundo nodo es de tipo Text
y representa el contenido textual de la etiqueta <p>
.
Por este motivo, crear y añadir a la página un nuevo elemento XHTML sencillo consta de cuatro pasos diferentes:
- Creación de un nodo de tipo
Element
que represente al elemento. - Creación de un nodo de tipo
Text
que represente el contenido del elemento. - Añadir el nodo
Text
como nodo hijo del nodoElement
. - Añadir el nodo
Element
a la página, en forma de nodo hijo del nodo correspondiente al lugar en el que se quiere insertar el elemento.
De este modo, si se quiere añadir un párrafo simple al final de una página XHTML, es necesario incluir el siguiente código JavaScript:
// Crear nodo de tipo Elementvar parrafo = document.createElement("p"); // Crear nodo de tipo Textvar contenido = document.createTextNode("Hola Mundo!"); // Añadir el nodo Text como hijo del nodo Elementparrafo.appendChild(contenido); // Añadir el nodo Element como hijo de la paginadocument.body.appendChild(parrafo);
El proceso de creación de nuevos nodos puede llegar a ser tedioso, ya que implica la utilización de tres funciones DOM:
createElement(etiqueta)
: crea un nodo de tipoElement
que representa al elemento XHTML cuya etiqueta se pasa como parámetro.createTextNode(contenido)
: crea un nodo de tipoText
que almacena el contenido textual de los elementos XHTML.nodoPadre.appendChild(nodoHijo)
: añade un nodo como hijo de otro nodo. Se debe utilizar al menos dos veces con los nodos habituales: en primer lugar se añade el nodoText
como hijo del nodoElement
y a continuación se añade el nodoElement
como hijo de algún nodo de la página.
5.4.2. Eliminación de nodos
Afortunadamente, eliminar un nodo del árbol DOM de la página es mucho más sencillo que añadirlo. En este caso, solamente es necesario utilizar la función removeChild()
:
var parrafo = document.getElementById("provisional");parrafo.parentNode.removeChild(parrafo); <p id="provisional">...</p>
La función removeChild()
requiere como parámetro el nodo que se va a eliminar. Además, esta función debe ser invocada desde el elemento padre de ese nodo que se quiere eliminar. La forma más segura y rápida de acceder al nodo padre de un elemento es mediante la propiedadnodoHijo.parentNode
.
Así, para eliminar un nodo de una página XHTML se invoca a la función removeChild()
desde el valorparentNode
del nodo que se quiere eliminar. Cuando se elimina un nodo, también se eliminan automáticamente todos los nodos hijos que tenga, por lo que no es necesario borrar manualmente cada nodo hijo.