Documentación Técnica
Documentación Técnica
Documentación Técnica
DOM
2 de 16
Índice
1. Introducción ………………………………………………………………………………………………….….………...… 5
2. Árbol de nodos ………..…………………………………………………………..………………………..…………… 6
2.1. Tipos de nodos …………………………………………………………………………………………………… 7
5 de 16
2. Árbol de nodos
Es importante verificar que no haya errores en el código html, ya que estos errores
se trasladarán al árbol de nodos. Para poder acceder y modificar el árbol, este debe
estar completo, es decir, es necesario que el navegador haya cargado
completamente la página XHTML.
Ejemplo:
<html>
<body>
<p>Página de <strong>EJEMPLO</strong></p>
</body>
</html>
6 de 16
2. Árbol de nodos
Árbol de nodos:
Document
XHTML
NodoTexto:
Nodo P
Nueva Página
Nodo Texto:
Nodo Strong
Página de
Nodo Texto:
EJEMPLO
El estándar de DOM define hasta 12 tipos diferentes de nodos, aunque los habituales
para páginas XHTML son únicamente cinco:
Una vez construido el árbol de nodos, se puede acceder de forma directa a cualquier
nodo del mismo. Para lo cual se disponen de una serie de funciones. No todos los
navegadores tienen el mismo comportamiento, veremos el acceso de forma
genérica sin profundizar.
7 de 16
2. Árbol de nodos
2.2.1. Propiedades
Para acceder a los distintos nodos, hay una serie de propiedades que podemos
utilizar:
Ejemplo:
var tipoHijo1=document.childNodes[1].nodeType;
2.2.2. Funciones
Ejemplo:
8 de 16
2. Árbol de nodos
Ejemplo:
Ejemplo:
Ejemplo:
Ejemplo:
Ejemplo:
<body>
<p>Hola Mundo 1</p>
<p id="test1">Hola Mundo 2</p>
9 de 16
2. Árbol de nodos
<button onclick="cambiacolor('blue')">Azul</button>
<button onclick="cambiacolor('red')">Rojo</button>
<script>
function cambiacolor(colorN) {
var colorA =
document.getElementsByTagName("P")[1].style.color;
document.getElementsByTagName("P")[0].style.color = colorA;
document.getElementsByTagName("P")[1].style.color = colorN;
}
</script>
</body>
</html>
Como hemos visto, un elemento se compone de dos nodos, uno para la etiqueta y
otro para el texto del contenido. Por tanto, para crear un nuevo elemento debemos
crear ambos nodos y, posteriormente, indicar de quien son hijos (el texto de la
etiqueta, y la etiqueta de otro elemento).
Ejemplo:
10 de 16
2. Árbol de nodos
contenido.nodeValue="Hello World!";
Además de la función appendChild, existen otras dos para poder enlazar un nodo
hijo con su padre: una es insertBefore que inserta el nodo antes de un nodo que le
indiquemos, y una tercera forma es reemplazando un nodo existente con
replaceChild.
Ejemplo:
Ejemplo:
11 de 16
2. Árbol de nodos
titulo.parentNode.removeChild(titulo);
Ejemplo:
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Hora de carga: " + Date());
</script>
</body>
Ejemplo:
boton.setAttribute("name", "botonHola");
Para las propiedades css se requiere un paso adicional, debemos utilizar el atributo
style para acceder a la propiedad css.
Ejemplo:
parrafo.style.fontFamily = 'sans-serif';
Cada atributo css tiene una propiedad DOM equivalente, el nombre de las
propiedades es el mismo que el de los atributos, pero eliminando los guiones y
cambiando la primera letra de las palabras a mayúsculas como, por ejemplo: font-
weight se transforma en fontWeight. El único atributo css cuyo nombre cambia es
class, al ser una palabra reservada de JS se traduce en className.
12 de 16
2. Árbol de nodos
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo modificar CSS</title>
<script type="text/javascript">
function cambia() {
var p = document.getElementById("pid");
p.style.color = "blue"
p.style.fontSize = "24pt"
}
</script>
</head>
<body>
<p id="pid" onclick="window.location.href =
'http://www.bejob.com/';"> Enlace </p>
<form>
<p><input value="visita" type="button" onclick="cambia();"></p>
</form>
</body>
</html>
2.5.2. innerHTML
Sintaxis:
Ejemplo:
13 de 16
2. Árbol de nodos
Ejemplo:
<body>
<script>
function funcionTabla() {
var tabla = '<table border="0">';
tabla += '<tr><td>Celda 1</td><td>Celda 2</td><td> Celda
3</td></tr>';
tabla += '</table>';
document.getElementById("contenido").innerHTML = tabla;
}
</script>
</body>
</html>
14 de 16
.
15 de 16