Lectura 4 - Document Object Model (DOM)
Lectura 4 - Document Object Model (DOM)
¡Comencemos!
_ 1
www.desafiolatam.com
¿Qué aprenderás?
● Reconocer los principales elementos del DOM para utilizar adecuadamente los
componentes y métodos con que se accede y manipula un documento HTML.
● Ejecutar funciones creadas de JavaScript para interactuar con los elementos del
DOM y manipular su comportamiento.
Introducción
Manejar estos conceptos te dará las bases para entender más adelante cómo capturar,
manipular y utilizar eventos en JavaScript, permitiendo la interacción entre las aplicaciones y
los usuarios, una de las características más relevantes de este lenguaje.
_ 2
www.desafiolatam.com
El concepto DOM
El DOM es un estándar adoptado por los navegadores web, creado por el W3C (World Wide
Web Consortium), con el fin de ser un medio que permita a los programas y scripts, acceder
y gestionar el contenido.
Para aplicar el DOM en el HTML mediante el uso de JavaScript, es necesario utilizar ciertas
instrucciones muy específicas del propio lenguaje de programación, las cuales permitirán
captar elementos del documento HTML como lo son: id, clases y etiquetas, para poder
captar la información necesaria y realizar la ejecución de código pertinente.
● Id: El acceso mediante el atributo id es uno de los más utilizados y de fácil uso,
puesto que es un identificador único de un elemento en el DOM.
<div id="contenedor">
<p id="parrafo">Hola soy un párrafo.</p>
</div>
● Tag: El acceso por tag se realiza especificando el tipo de elemento HTML. Por
ejemplo, si deseamos buscar todos los elementos de tipo párrafo en el DOM (<p>),
podríamos escribir el siguiente código:
_ 3
www.desafiolatam.com
<div id="contenedor">
<p>Hola soy un párrafo.</p>
</div>
<div id="contenedor">
<button type="button" class="boton">Soy un botón</button>
</div>
● Selectores CSS: Es posible buscar elementos mediante selectores CSS (de la misma
forma que se realiza en el código CSS). Por ejemplo, si deseamos buscar todos los
elementos <p> con la clase parrafo, podríamos escribir el siguiente código:
<div id="contenedor">
<p class="parrafo">Hola soy un párrafo.</p>
<p class="parrafo">Hola soy otro párrafo.</p>
</div>
Por lo tanto, el método querySelectorAll nos traería un arreglo con todos los elementos que
se ajusten a nuestra búsqueda. Ahora, también disponemos del método querySelector que
nos retornaría sólo el primer elemento que calce con nuestro patrón de búsqueda:
_ 4
www.desafiolatam.com
Ejercicio guiado: Acceso a elementos del DOM
Ahora desarrollaremos un ejercicio para poner en práctica los conocimientos que hemos
ido adquiriendo sobre los elementos del DOM. Para esto, se solicita seleccionar los
siguiente elementos mediante el uso del DOM:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="contenedor">
<div class="menu">
<ul>
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
● Paso 1: Crea una carpeta en tu lugar de trabajo favorito y dentro de ella crea dos
archivos, un index.html y un script.js.
_ 5
www.desafiolatam.com
en el HTML con el id igual a contenedor (punto 1) mediante las instrucciones
“document.getElementById()” y almacenamos este resultado en una variable para
futuras operaciones y procesos que veremos más adelante, seguidamente
mostramos el resultado de la variable en un console.log.
<div id="contenedor">...</div>
_ 6
www.desafiolatam.com
● Paso 8: Al ejecutar el código anterior, el resultado sería:
_ 7
www.desafiolatam.com
console.log(parrafo);
Con esto, cambiamos su contenido de “Hola a todos” por “Soy un párrafo”. Podemos
configurar su contenido de la siguiente manera en el código JavaScript:
La manipulación de elementos que acabamos de ver, se puede aplicar muy bien para
elementos, ya que su texto visible se define entre llaves, como en el caso de los párrafos,
etiquetas H1, H2, entre otras. En cambio, para elementos como botones, donde el texto
visible está presente en un atributo, el procedimiento es distinto. Por ejemplo, en el siguiente
botón:
Podemos ver que el texto está presente en el atributo value, si quisiéramos manipular este
texto, podríamos escribir el siguiente código JavaScript:
document.getElementById("btnAccion").value = "Boton";
document.getElementById("btnAccion").id = "nuevoId";
document.getElementById("btnAccion").type = "text";
Ahora, disponemos de un método específico para configurar atributos de los elementos del
DOM: setAttribute, el cual recibe como parámetro el nombre del atributo que se desea
configurar junto con el valor que se le asociará. En el caso del botón con el atributo id y valor
btnAccion, podríamos configurar su propiedad style para, por ejemplo, cambiar su color de
fondo:
document.getElementById('btnAccion').setAttribute('style',
'background-color: blue');
_ 8
www.desafiolatam.com
Así como podemos modificar elementos y propiedades mediante elementos del DOM,
también es posible añadir elementos y escribir un documentos HTML. Puedes profundizar
sobre este contenido en el documento Material Apoyo Lectura - Gestionando elementos del
DOM, ubicado en “Material Complementario”. Ahí podrás ver en detalle elementos teóricos y
prácticos de este contenido.
Se requiere modificar el texto asociado al elemento <p> que posea un “id” con el nombre
“textoSaludo” a “Hola, este párrafo fue modificado”. Igualmente, modificar los valores del
elemento <input> con “id” igual a “entradaUno”, por el “value” igual a “Clic Aqui”, el id por
“clicUno” y el tipo “type” por “button”. Además, agregar el atributo “style” con la propiedad
“color: red; background-color: green”. Implementar las instrucciones necesarias para acceder
al DOM y modificar los valores mencionados desde el siguiente documento HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="contenedor">
<div class="menu">
<p id="texto">Soy un párrafo en un documento HTML</p>
<p id="textoSaludo">Soy un párrafo en un documento HTML</p>
<input value="Correo Electrónico" id="entradaUno" type="email"/>
<input value="Entrada de datos" id="entradaDos" type="email"/>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
_ 9
www.desafiolatam.com
document.getElementById("textoSaludo").innerHTML = "Hola, este párrafo
fue modificado";
_ 10
www.desafiolatam.com