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
07:37 min - 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
Viendo ahora - 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
Creación de un Task Manager con Persistencia usando Local Storage
Resumen
Construir un gestor de tareas desde cero con JavaScript es una de las formas más efectivas de practicar manipulación del DOM, manejo de eventos y persistencia de datos. A lo largo de este recorrido se explica paso a paso cómo capturar información de un formulario, crear elementos dinámicamente y mantener los datos entre sesiones gracias a una web API muy útil.
¿Qué funcionalidades tiene el task manager?
El proyecto final es una aplicación visualmente sencilla pero con características clave que demuestran conceptos fundamentales del desarrollo frontend [0:03]:
- Cambiar el tema de la interfaz con un botón toggle.
- Agregar tareas a una lista mediante un formulario.
- Modificar y borrar tareas existentes.
- Persistencia de datos: al refrescar el navegador, las tareas y el tema seleccionado se mantienen.
Esa persistencia se logra utilizando Local Storage [1:07], una web API que permite almacenar datos en el navegador del usuario. Esto significa que la información sobrevive incluso cuando se cierra o se recarga la página, sin necesidad de un servidor o base de datos.
Un detalle importante es que en el HTML existe una tarea hardcodeada como ejemplo [0:44]. Cada vez que se refresca la página, esa tarea aparece por defecto. Si se elimina del código HTML, deja de mostrarse, lo que confirma que el resto de tareas provienen exclusivamente de Local Storage.
¿Cómo se estructura el HTML y el JavaScript inicial?
La estructura HTML es sencilla: un formulario con un input para escribir la tarea, un botón de Add Task y un contenedor tipo lista donde se agregan los elementos [1:24]. El CSS se maneja en un archivo independiente para mantener el código organizado.
Desde JavaScript, lo primero es obtener referencias a los elementos del DOM que se van a manipular. Se utilizan dos constantes principales [2:15]:
taskForm: referencia al formulario, obtenida condocument.getElementByIdusando el ID específico del formulario.taskList: referencia al contenedor donde se renderizan las tareas.
javascript const taskForm = document.getElementById('task-form'); const taskList = document.getElementById('task-list');
Usar getElementById es la forma más directa de seleccionar un elemento cuando se cuenta con un ID único en el HTML [2:30].
¿Cómo se captura el valor del formulario con el evento submit?
Con el elemento del formulario ya disponible, se le agrega un event listener de tipo submit [3:02]. Este evento se dispara cuando el usuario presiona Enter o hace clic en el botón de envío.
javascript taskForm.addEventListener('submit', function(event) { event.preventDefault();
const taskInput = document.getElementById('task-input'); const task = taskInput.value;
console.log(task); });
¿Por qué se usa preventDefault?
El método event.preventDefault() evita el comportamiento por defecto del formulario [3:30], que normalmente recarga la página al hacer submit. Sin esta línea, los datos se perderían con cada envío porque el navegador refrescaría todo el contenido.
¿Cómo se obtiene el valor del input?
Dentro del callback del evento, se selecciona el input por su ID y se accede a su propiedad .value [4:05]. Esa propiedad contiene el texto que el usuario escribió. El valor se almacena en una constante llamada task.
Existe otra forma de acceder a los campos de un formulario: utilizar la propiedad elements del formulario para buscar por atributos como type o name [4:40]. Sin embargo, seleccionar directamente por ID resulta más sencillo y legible.
Al probar en la consola del navegador, al escribir "hola" y presionar Enter, el valor aparece correctamente en la línea del console.log [5:10]. Esto confirma que la captura del dato funciona.
Un error común durante este proceso es olvidar una coma en la sintaxis [4:58], lo que genera un problema que el navegador reporta inmediatamente. Revisar la consola ante cualquier fallo es una práctica esencial.
Esta primera parte sienta las bases: capturar el valor del input dentro del formulario al disparar el evento submit. A partir de aquí, el siguiente paso es construir funciones que creen los elementos HTML dinámicamente y generen los botones de edición y eliminación, dividiendo la lógica para que el código sea más escalable y fácil de mantener.
¿Has trabajado con Local Storage en algún proyecto? Comparte tu experiencia y las dificultades que encontraste.