Clase 8 - DOM
Clase 8 - DOM
grabada
Clase 08. JAVASCRIPT
Glosario
Operar: Abstracción: Resumen de un grupo complejo Objeto Math: Contenedor de herramientas y serie de
de instrucciones bajo una palabra clave (función) que métodos propio de Javascript para realizar funciones
sugiere cuál es el problema a resolver por la misma. matemáticas complejas.
Función de orden superior: Es aquella que bien Clase Date: Clase propia de Javascript que nos
retorna una función, o recibe una función por permite representar y manipular fechas.
parámetro. También es conocida como función de
alto orden o higher-order functions.
Objetivos de la clase
Comprender el DOM, su alcance y su importancia
para operar sobre elementos HTML.
¿Qué es y cómo
funciona?
Estructura
Tipos
getElementById()
Plantillas Literales Métodos
Nodos getElementsByClassName()
de acceso
getElementsByTagName()
Agregar o
quitar
Query Selector
07 08 09
✓ Abstracción
✓ DOM: ✓ Eventos
✓ Funciones de
Funcionamiento
orden superior ✓ Definir eventos
✓ Acceso
✓ Métodos de ✓ Lorem ipsum
búsqueda y ✓ Nodos
transformación
¡Vamos a la clase!
¿Qué es el Modelo de
objetos del documento
(DOM) y cómo
funciona?
DOM
(Document Object
Model)
El Modelo de Objetos del Documento (DOM) es
una estructura de objetos generada por el
navegador, la cual representa la página HTML
actual.
La estructura de un documento HTML son las Las etiquetas anidadas son llamadas “nodos
etiquetas. hijos” de la etiqueta “nodo padre” que las
contiene.
En el Modelo de Objetos del Documento
(DOM), cada etiqueta HTML es un objeto, al
que podemos llamar nodo.
¿Cómo funciona?
Todos estos objetos son accesibles empleando JavaScript mediante el
objeto global document.
Cada etiqueta HTML se De esta forma, del nodo Cada etiqueta HTML se La transformación de las
transforma en un nodo raíz solamente pueden transforma en un nodo etiquetas HTML
de tipo "Elemento". La derivar los nodos HEAD que deriva del habituales genera dos
conversión se realiza de y BODY. correspondiente a su nodos
forma jerárquica. "etiqueta padre".
<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, los más usados son:
Nodo raíz del que Representa cada Se define un nodo Nodo que Representa los
derivan todos los una de las de este tipo para contiene el texto comentarios
demás nodos del etiquetas XHTML. representar cada encerrado por incluidos en la
árbol. Puede contener uno de los una etiqueta página HTML.
atributos y derivar atributos de las HTML.
otros nodos de él. etiquetas HTML,
es decir, uno por
cada par
atributo=valor.
Ejemplo en vivo
¡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.
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 JS
let div = document.getElementById("app");
let parrafo = document.getElementById("parrafo1");
console.log(div.innerHTML);
console.log(parrafo.innerHTML);
Getelementsbyclassname()
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:
//Resultado en el DOM
<div id=”contenedor”>
<h2>Hola mundo!</h2>
<p>Lorem ipsum</p>
</div>
Class Name
//CODIGO HTML DE REFERENCIA
<div id=”contenedor”></div>
A través de la propiedad //CODIGO JS
className de algún nodo let container = document.getElementById("contenedor")
seleccionado podemos acceder // cambio el código HTML interno
al atributo class del mismo y container.innerHTML = “<h2>Hola mundo!</h2>”
definir cuáles van a ser sus
// cambio el atributo class
clases:
container.className = “container row”
//Resultado en el DOM
<div id=”contenedor” class=“container row”>
<h2>Hola mundo!</h2>
</div>
Ejemplo en vivo
//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
En versiones anteriores a ES6, solía emplearse la concatenación para
incluir valores de las variables en una cadena de caracteres (string).
Esta forma puede ser poco legible ante un gran número de referencias.
En JS ES6 que solventa esta situación son los template strings.
// o por clase:
parrafo = document.querySelector(".texto")
Query Selector
Lo interesante del querySelector es que también aplica a pseudo-clases
de CSS, brindando un nivel más avanzado de precisión:
Para el profesor:
Acceder a la carpeta “Quizzes” de la camada.
Ingresar al formulario de la clase.
Pulsar el botón “Invitar”.
Copiar el enlace.
Compartir el enlace a los alumnos a través del chat.
¿Preguntas?
¡Completa tu carrera
y potencia tu desarrollo
profesional!
Ingresando el cupón CONTINUATUCARRERA tendrás un
descuento para inscribirte en el próximo nivel.
Recursos
Documentación
Ejemplos interactivos: DOM
✓ Documentación DOM
✓ Árbol del Modelo de Objetos del
Documento (DOM)
✓ Recorriendo el DOM
✓ Propiedades de los nodos