¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cambiar una página con JavaScript

Después de esta lección: Puedo cambiar una página con JavaScript eligiendo un elemento y modificando su texto o sus clases.

Lección de 65 min2 comandosLaboratorio de web en el navegador: HTML, CSS y JavaScript con vista previa en directo

Una página que cambia sin recargarse

JavaScript es el lenguaje que hace que una página reaccione: filtra una lista, abre un menú o cambia de tema. Funciona porque el navegador guarda la página como un árbol de objetos, el DOM, que JavaScript puede leer y cambiar.

Piensa en la página de la cafetería. Pulsas un botón y los colores cambian, sin pedir nada al servidor. Alguien ha cambiado el árbol de la página.

Al terminar esta lección

Nota

Puedo cambiar una página con JavaScript eligiendo un elemento y modificando su texto o sus clases.

Palabras clave

PalabraQué significaEjemplo
JavaScriptel lenguaje de programación que corre dentro del navegador
DOMla página como árbol de objetos que el navegador guarda
Variableun nombre que guarda un valorvar titulo
Funciónun bloque de código con nombre que se puede llamarfunction filtrar()
Selectorel texto que elige elementos de la página.plato
Claseuna etiqueta de un elemento que CSS usa para darle estiloclass="plato"

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

El DOM es la página como un árbol

Cuando el navegador lee el HTML, construye el DOM, el modelo de objetos del documento. Cada elemento es un nodo con un padre y, a veces, hijos.

JavaScript no toca el archivo HTML. Toca este árbol, que vive en la memoria del navegador. Si cambias un nodo, la página se redibuja al momento.

Elegir un elemento y cambiar su texto

document.querySelector devuelve el primer elemento que cumple un selector CSS. document.querySelectorAll devuelve todos, en una lista. getElementById busca por identificador.

Para cambiar lo que el elemento muestra, se asigna a su propiedad textContent. La página se actualiza en cuanto termina esa línea.

Elegir el título y contar los platos

Código: web
var titulo = document.querySelector("h1");
titulo.textContent = "Menú del jueves";

var platos = document.querySelectorAll(".plato");
console.log(platos.length);

Cambiar clases cambia el estilo

Para cambiar cómo se ve un elemento, lo más limpio es cambiar sus clases y dejar que el CSS haga el resto. classList.add pone una clase, remove la quita y toggle la pone o la quita según esté.

Un script también reacciona a lo que pasa en la página. addEventListener dice qué evento se espera y qué función se ejecuta cuando llega.

Poner, quitar y alternar una clase

Código: web
var lista = document.getElementById("lista");
lista.classList.add("oculta");
lista.classList.remove("oculta");
lista.classList.toggle("oculta");

Lee el script de la página del laboratorio

El archivo site/app.js es el script de la página del menú. El laboratorio tiene un script que lo lee y escribe qué funciones define y qué eventos espera. Escribe en inglés: listens for es "escucha" y looks up id es "busca el identificador".

Verás dos funciones, tres oyentes y cuatro identificadores. Después, un grep muestra las dos líneas con classList: una oculta un plato y otra cambia el tema.

Ver qué define y qué espera el script

Comando
docker exec jupyter python3 steps/js.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Buscar dónde se cambian las clases

Comando
docker exec jupyter grep -n "classList" site/app.js

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

La función del tema del laboratorio

Código: web
function toggleTheme() {
  var dark = document.body.classList.toggle("dark");
  themeButton.textContent = dark ? "Light theme" : "Dark theme";
}

themeButton.addEventListener("click", toggleTheme);

Un error frecuente

Advertencia

Mucha gente cree que JavaScript cambia el archivo HTML. Solo cambia el DOM, que vive en la memoria. Si recargas la página, el navegador vuelve a leer el archivo y todo queda como al principio.

Sobre este laboratorio y su código: Laboratorio de web en el navegador: HTML, CSS y JavaScript con vista previa en directo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.