Clase 8 - DOM
Clase 8 - DOM
Clase 8 - DOM
LA CLASE
¿DUDAS DEL ON-
BOARDING?
MIRALO AQUI
Clase 08. JAVASCRIPT
DOM
● Comprender el DOM, su alcance y su
importancia para operar sobre elementos
HTML.
OBJETIVOS DE LA
CLASE
GLOSARIO:
Clase 7
Storage o almacenamiento: nos permite almacenar datos
de manera local en el navegador, sin necesidad de realizar
alguna conexión con el servidor.
Hay dos tipos de almacenamiento: localStorage y
sessionStorage. Uno es indefinido en el navegador, y otro
es temporal, hasta cerrar la pestaña.
Funcionamiento
Estructura
HTML a DOM
Nodos Tipos
Agregarlos o quitarlos
CRONOGRAMA DEL CURSO
Clase 7 Clase 8 Clase 9
EJERCITAR JSON Y
STORAGE INTERACTUAR CON HTML INCORPORAR EVENTOS
HERRAMIENTAS DE LA CLASE
Les compartimos algunos recursos para acompañar la clase
El acceso a body usando la referencia document.body requiere que el script se incluya luego
de <head> en el HTML
<body>
<h2>Coder House</h2>
<script src="js/main.js"></script>
</body>
TIPOS DE NODOS
La especificación completa de DOM define 12 tipos de nodos, aunque los
más usados son:
● Document, nodo raíz del que derivan todos los demás nodos del árbol.
● Element, representa cada una de las etiquetas XHTML. Se trata del único nodo que
puede contener atributos y el único del que pueden derivar otros nodos.
● Attr, se define un nodo de este tipo para representar cada uno de los atributos de las
etiquetas HTML, es decir, uno por cada par atributo=valor.
● Text, nodo que contiene el texto encerrado por una etiqueta HTML.
● Comment, representa los comentarios incluidos en la página HTML.
¡VAMOS AL CÓDIGO!
ACCESO AL DOM
ACCEDER A LOS
NODOS
Existen distintos métodos para acceder a los elementos del DOM
empleando en la clase Document. Los más utilizados son:
● getElementById()
● getElementsByClassName()
● getElementsByTagName()
GETELEMENTBYID()
El método getElementById() sirve para acceder a un elemento de la
estructura HTML, utilizando su atributo ID como identificación.
//CODIGO HTML DE REFERENCIA
<div id = "app">
<p id = "parrafo1" >Hola Mundo</p>
</div>
//CODIGO JS
let div = document.getElementById("app");
let parrafo = document.getElementById("parrafo1");
console.log(div.innerHTML);
console.log(parrafo.innerHTML);
GETELEMENTSBYCLASSNA
ME()
El método getElementsByClassName() sirve para acceder a un conjunto de
elementos de la estructura HTML, utilizando su atributo class como
identificación. Se retornará un Array de elementos con todas las
coincidencias:
//CODIGO HTML DE REFERENCIA
<ul>
<li class="paises">AR</li>
<li class="paises">CL</li>
<li class="paises">UY</li>
</ul>
//CODIGO JS
let paises = document.getElementsByClassName("paises");
console.log(paises[0].innerHTML);
console.log(paises[1].innerHTML);
console.log(paises[2].innerHTML);
GETELEMENTSBYTAG
NAME()
El método getElementsByTagName() sirve para acceder a un conjunto de
elementos de la estructura HTML, utilizando su nombre de etiqueta como
identificación. Esta opción es la menos específica de todas, ya que es muy
probable que las etiquetas se repitan en el código HTML.
//CODIGO HTML DE REFERENCIA
<div>
<div>CONTENEDOR 2</div>
<div>CONTENEDOR 3</div>
</div>
//CODIGO JS
let contenedores = document.getElementsByTagName("div");
console.log(contenedores[0].innerHTML);
console.log(contenedores[1].innerHTML);
console.log(contenedores[2].innerHTML);
EJEMPLO APLICADO:
RECORRE HTMLCollection CON
let paises FOR...OF
= document.getElementsByClassName("paises");
let contenedores = document.getElementsByTagName("div");
¡5/10 MINUTOS Y
AGREGAR O QUITAR NODOS
CREACIÓN DE ELEMENTOS
Para crear elementos se utiliza la función document.createElement(), y se debe
indicar el nombre de etiqueta HTML que representará ese elemento.
Luego debe agregarse como hijo el nodo creado con appendChild(), al body u a
otro nodo del documento actual.
//CODIGO JS
document.getElementById("nombre").value = "HOMERO";
document.getElementById("edad").value = 39;
EJEMPLO APLICADO:
CREANDO OPCIONES DESDE UN
ARRAY
//Obtenemos el nodo donde vamos a agregar los nuevos elementos
let padre = document.getElementById("personas");
//Array con la información a agregar
let personas = ["HOMERO","MARGE", "BART", "LISA","MAGGIE"];
//Iteramos el array con for...of
for (const persona of personas) {
//Creamos un nodo <li> y agregamos al padre en cada ciclo
let li = document.createElement("li");
li.innerHTML = persona
padre.appendChild(li);
PLANTILLAS DE TEXTO
PLANTILLAS LITERALES
Al momento de incluir valores de las variables en una cadena de caracteres (string)
empleábamos la concatenación.
Esta forma puede ser poco legible ante un gran número de referencias.
Un elemento incluido en JS ES6 que solventa esta situación son los templates de literales .
>> Consigna: Traslada al proyecto integrador el concepto de objetos, visto en la clase de hoy. En función del tipo de
simulador que hayas elegido, deberás:
- Crear elementos manipulando el DOM a partir de la informaciòn de tus objetos.
- Modificar etiquetas existentes en función del resultado de operaciones.
>>Aspectos a incluir en el entregable:
Archivo HTML y Archivo JS, referenciado en el HTML por etiqueta <script src="js/miarchivo.js"></script>, que
incluya la definición de un algoritmo en JavaScript que opere sobre el DOM, modificando, agregando o eliminado
elementos.
>>Ejemplo:
Podemos crear elementos HTML en función del listado de nuestros objetos identificados en la clase 6.
Establecer un mensaje de bienvenida aleatorio usando un array de mensajes.
Capturar una o màs entradas por promp() y mostrarlas en el HTML, modificando el DOM
¡PARA PENSAR!
¿Te gustaría comprobar tus conocimientos de la clase?