Proyecto Manipulación DOM

Proyecto de programación
Intermedio
JavaScript
Curso de JavaScript
120 min
500 XP
Actualizado: 16/05/2025

¡Programa y certifícate!

Asistente de IA
Solución de código
Certificado
Empezar ejercicio

Descripción

Crear una lista de tareas interactiva con manipulación del DOM que permita añadir, reordenar y eliminar elementos.

  1. Estructura básica: Crea un archivo HTML con la estructura básica para la aplicación de lista de tareas. Incluye un formulario con un campo de texto para introducir nuevas tareas y un botón para añadirlas. Añade también un contenedor <ul> vacío donde se mostrarán las tareas.

  2. Añadir tareas: Implementa la funcionalidad para añadir nuevas tareas. Cuando el usuario envíe el formulario, crea dinámicamente un nuevo elemento <li> con el texto introducido y añádelo a la lista. Asegúrate de limpiar el campo de texto después de añadir la tarea.

  3. Marcar como completada: Añade un checkbox a cada tarea que permita marcarla como completada. Cuando una tarea se marque como completada, aplica un estilo visual diferente (por ejemplo, texto tachado) utilizando manipulación de clases CSS.

  4. Eliminar tareas: Añade un botón de eliminar a cada tarea que, al hacer clic, elimine ese elemento de la lista utilizando los métodos de eliminación de nodos del DOM.

  5. Reordenamiento: Implementa botones de "subir" y "bajar" para cada tarea que permitan reordenar los elementos en la lista. Utiliza los métodos de movimiento de nodos para cambiar la posición de las tareas.

  6. Optimización con fragmentos: Modifica tu código para utilizar DocumentFragment cuando sea necesario añadir múltiples elementos a la vez, como al cargar tareas desde localStorage al iniciar la aplicación.

  7. Contador de tareas: Añade un contador en la parte superior que muestre el número de tareas pendientes. Este contador debe actualizarse automáticamente cuando se añadan, completen o eliminen tareas.

    Guarda tu progreso

    Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

    Progreso guardado
    Asistente IA
    Ejercicios
    Iniciar sesión gratis

    Más de 25.000 desarrolladores ya confían en CertiDevs

  8. Persistencia de datos: Implementa la funcionalidad para guardar las tareas en localStorage cada vez que se produzca un cambio (añadir, completar, reordenar o eliminar). Al cargar la página, recupera las tareas guardadas y reconstruye la lista.

  9. Limpieza masiva: Añade un botón "Eliminar completadas" que elimine todas las tareas marcadas como completadas de la lista en una sola operación.

  10. Estilización final: Añade estilos CSS para mejorar la apariencia de tu aplicación. Incluye efectos visuales para las interacciones como hover sobre los botones o transiciones al completar tareas.

Solución al ejercicio de programación en JavaScript

Contenido bloqueado

¡Desbloquea la solución completa!

Completa el ejercicio de programación en JavaScript para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

Practica con ejercicios de programación en JavaScript

Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.

Asistente de IA

Aprende de tus errores

Progreso

Mide tu avance

Certificación

Valida tus habilidades

Únete a miles de desarrolladores mejorando sus habilidades en JavaScript

⭐⭐⭐⭐⭐
4.9/5 valoración