
Curso de JavaScript
Dale vida a la web.
Aprende a programar, crea interacciones y construye proyectos reales.
Con el estado y render() ya listos, agregas la lógica que faltaba: un formulario para agregar tareas y delegación de eventos en la lista para marcarlas completadas o eliminarlas.
Explicación
Cada acción (agregar, completar, eliminar) modifica el array tareas y vuelve a llamar a render():
elemento.dataset.indiceLee el atributo data-indice del HTML como texto. Junto con Number(), te dice a qué posición del array corresponde ese elemento.
array.push(valor)Agrega un nuevo elemento al final del array (ya visto en Arreglos); aquí lo usas para agregar una tarea nueva al escribir y hacer clic en Agregar.
array.splice(indice, 1)Elimina 1 elemento del array a partir de la posición indice, modificando el array original.
render() después de cada cambioCada vez que tareas cambia (agregar, eliminar, marcar completada), se vuelve a llamar a render() para que la pantalla refleje el nuevo estado.
Reto rápido
Agrega 2 o 3 tareas nuevas, márcalas como completadas haciendo clic, y elimina alguna con el botón "x", todo sin tocar el JavaScript.
En esta lección
- Ejemplo interactivo
- Explicación de cada etiqueta
- Cuándo usarlo
- Errores comunes
Consejo
Fíjate que solo hay un addEventListener en lista (delegación de eventos): no importa cuántas tareas agregues, todos los <li> y botones "x" nuevos reaccionan al clic sin código adicional.
Dato extra
Guardar el índice de cada tarea en un atributo data-* (como data-indice) es una técnica muy común para conectar un elemento del DOM con su dato correspondiente en un array.
Error común
Usar evento.target.dataset.indice sin convertirlo con Number(): los atributos data-* siempre se leen como texto, así que comparar o usar ese valor como si fuera un número directamente puede no funcionar como esperas.
Siguiente paso
Ya tienes una lista de tareas completamente funcional: agregar, completar y eliminar. En el siguiente módulo vas a pulirla e integrarla con persistencia, para que recuerde tus tareas.
Ir a la siguiente lección