Contenido del curso
Seleccionando y Accesando a Elementos del DOM
Manipulando Elementos del DOM
- 6

Atributos y Propiedades en HTML y su Manipulación con JavaScript
07:39 min - 7

Modificar texto en HTML con JavaScript
04:49 min - 8

Modificar Estilos CSS con JavaScript: Propiedad Style y ClassName
11:30 min - 9

Uso de classList para Manipular Clases en Elementos HTML
Viendo ahora - 10

Manipulación del DOM con innerHTML e InsertAdjacentHTML
09:47 min - 11

Agregar elementos HTML sin reemplazar contenido existente
05:17 min - 12

Creación y Manipulación de Elementos DOM con createElement
13:28 min - 13

remove() vs removeChild() en el DOM
05:42 min - 14

Clonación y Reemplazo de Elementos en JavaScript
12:47 min
Manipulando Eventos en el DOM
- 15

Eventos y Flujo en Programación Web: Capturing y Bubbling
05:03 min - 16

Eventos del mouse y clic en JavaScript
11:46 min - 17

Qué es event.target y cómo usarlo
07:35 min - 18

Validación de Formularios con JavaScript: Prevenir Comportamiento por Defecto
10:06 min - 19

Delegation Pattern en JavaScript: Mejora de Eventos Click en Listas
09:29 min
Asincronía en JavaScript
Creando un Administrador de Tareas
- 21

Creación de un Task Manager con Persistencia usando Local Storage
09:01 min - 22

Editar y borrar tareas con delegación de eventos
13:35 min - 23

Persistencia de Datos con Local Storage en Tareas Web
15:17 min - 24

Guardado y edición de tareas en local storage con JavaScript
10:59 min - 25

Manejo de Errores en Local Storage para Tareas Dinámicas
03:24 min - 26

Persistencia de tema dark/light con localStorage
07:18 min - 27

Creación de Páginas Web Dinámicas con JavaScript
01:28 min
Uso de classList para Manipular Clases en Elementos HTML
Resumen
Manipular clases CSS desde JavaScript sin perder las que ya existen en un elemento es una necesidad frecuente en el desarrollo web. La propiedad classList resuelve exactamente ese problema y ofrece métodos como toggle, add, remove y contains que permiten un control preciso sobre las clases de cualquier elemento del DOM.
¿Qué diferencia a classList de className?
Cuando se utiliza className, cada asignación reescribe todas las clases previas del elemento. Esto obliga a concatenar manualmente las clases existentes con las nuevas, lo que resulta propenso a errores. En cambio, classList es una propiedad que permite acceder a las clases del elemento y agregar más de una clase sin sobrescribir las que ya existen [0:18]. Es decir, funciona como una lista inteligente de clases donde puedes añadir, quitar o consultar cada una de forma independiente.
¿Cómo funciona el método toggle con un ejemplo práctico?
El ejercicio consiste en hacer que un menú de navegación aparezca y desaparezca al presionar un botón. El menú ya tiene asignada la clase main-menu y es visible en pantalla. La idea es que, al hacer clic en el botón de toggle visibility, se agregue una clase llamada invisible que oculta el menú. Si se vuelve a hacer clic, esa clase se retira y el menú reaparece [1:10].
El primer paso es seleccionar el botón del DOM:
javascript const button = document.querySelector('button');
Después se le agrega un evento de clic utilizando el método addEventListener [3:00]. Este método, como su nombre indica, agrega un "escuchador de evento" al elemento: cuando detecta que ocurrió el evento especificado, ejecuta la función asociada.
javascript button.addEventListener('click', function() { menu.classList.toggle('invisible'); });
¿Qué hace exactamente toggle?
Toggle funciona como un switch [5:38]. Su lógica es simple:
- Si la clase no existe en el elemento, la agrega.
- Si la clase ya existe en el elemento, la quita.
En el ejemplo, al inspeccionar el HTML en tiempo real se puede observar cómo la clase invisible se agrega y se retira del elemento menú con cada clic, sin afectar la clase main-menu que ya estaba presente [4:48]. Este comportamiento es precisamente lo que diferencia a classList: respeta las clases existentes.
¿Qué otros métodos ofrece classList?
Además de toggle, classList incluye varios métodos útiles [5:50]:
- add: agrega una clase al elemento.
- remove: elimina una clase específica del elemento.
- contains: devuelve
trueofalsedependiendo de si el elemento seleccionado contiene o no la clase indicada.
Cada uno de estos métodos permite manipular las clases de forma granular sin necesidad de reescribir todo el atributo class del elemento.
¿Por qué es importante addEventListener en la manipulación de estilos?
El método addEventListener es la forma estándar de trabajar con eventos en JavaScript [3:00]. Recibe dos argumentos principales: el tipo de evento (en este caso 'click') y una función anónima que contiene la lógica a ejecutar cuando el evento ocurre. Al combinarlo con classList, se logra que la interfaz reaccione dinámicamente a las acciones del usuario.
Un detalle práctico importante: cuando se escribe código directamente en la consola del navegador, hay que tener cuidado de no presionar Enter antes de tiempo, ya que esto ejecuta el código de forma prematura en lugar de generar un salto de línea [3:42].
La combinación de addEventListener con classList.toggle es un patrón muy común en el desarrollo frontend. Sirve para menús desplegables, modales, acordeones y cualquier componente donde se necesite alternar la visibilidad o el estilo de un elemento con la interacción del usuario.
¿Has utilizado classList en algún proyecto? Comparte cómo lo implementaste y qué métodos te resultaron más útiles.