Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
Para hacer la lista con el botón de verificación

Quiero crear mi propia lista de tareas pendientes con JavaScript y localStorage. Después de escribir la entrada y presionar el botón Enviar, el elemento se agregará y se mostrará en la pantalla. Aparecerá un botón de verificación junto al elemento. Después de presionar el botón de verificación, quiero que se agregue la clase. Quiero agregar css (opacidad, línea...). Pero cuando presiono un botón de verificación, la consola muestra este error: TypeError no detectado: no se pueden leer las propiedades de undefined (leyendo 'agregar') al verificar (app.js:23) en HTMLElement.onclick (index.html:30)

Código HTML:

 <body> <div class="main"> <input id="item" type="text"> <i id="addItem" class="fas fa-plus"></i><br> <br> </div> <div class="items"> <div id="addedItems"></div> </div> <i onclick='deleteAll()' class="fas fa-trash"></i> </body>

Código JS:

 const item = document.getElementById("item"); const add = document.getElementById("addItem"); const addedItems = document.getElementById("addedItems"); add.onclick = function() { const itemValue = item.value; const itemValue2 = ' '; if (itemValue && itemValue2) { localStorage.setItem(itemValue, itemValue2); location.reload(); } }; for (let a = 0; a < localStorage.length; a++) { const itemValue = localStorage.key(a); addedItems.innerHTML += `<div class= 'text'> <div>${itemValue}</div> <div> <i onclick='check("${itemValue}")' class="fas fa-check"></i><i onclick='deleteItem("${itemValue}")' class="fas fa-trash-alt"></i> </div></div> <br>`; } function check(itemValue) { itemValue.classList.add("mystyle"); } function deleteItem(itemValue) { localStorage.removeItem(itemValue); location.reload(); } function deleteAll() { localStorage.clear(); location.reload(); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes probar esta respuesta:

 <script> const item = document.getElementById("item"); const add = document.getElementById("addItem"); const addedItems = document.getElementById("addedItems"); add.onclick = function() { const itemValue = item.value; const itemValue2 = ' '; if (itemValue && itemValue2) { localStorage.setItem(itemValue, itemValue2); location.reload(); } }; for (let a = 0; a < localStorage.length; a++) { const itemValue = localStorage.key(a); addedItems.innerHTML += `<div class= 'text'> <div>${itemValue}</div> <div> <i onclick='check("${itemValue}", ${a})' class="fas fa-check" id="${a}"></i><i onclick='deleteItem("${itemValue}")' class="fas fa-trash-alt"></i> </div></div> <br>`; } function check(itemValue, id) { const elem = document.getElementById(id); elem.classList.add("mystyle"); } function deleteItem(itemValue) { localStorage.removeItem(itemValue); location.reload(); } function deleteAll() { localStorage.clear(); location.reload(); } </script>
 <div class="main"> <input id="item" type="text"> <i id="addItem" class="fas fa-plus"></i><br> <br> </div> <div class="items"> <div id="addedItems"></div> </div> <i onclick='deleteAll()' class="fas fa-trash"></i>

Solo los cambios que hice son pasar la id del elemento para hacer clic en la casilla de verificación junto con el elemento itemValue . Valor que está pasando el valor de la casilla de verificación, no el elemento del documento. Si te consolas, sabrás que itemValue es solo una cadena, no un elemento DOM.

Aquí está el violín: https://jsfiddle.net/aviboy2006/ortqu1ps/

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda