Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

243
Views
¿Cómo puedo eliminar el elemento en el que se hizo clic y su hermano de la lista?

Tengo una extensión para guardar URL importantes. Y tengo un ícono de papelera al lado de cada enlace para eliminar la URL. Las direcciones URL se agregan manualmente y se almacenan en una matriz. Puedes ver la imagen a continuación.

ingrese la descripción de la imagen aquí

Entonces, cuando se hace clic en el ícono de la papelera, se eliminará la URL al lado. Mi código HTML está a continuación:

 <div class="container"> <input type="text" id="input" placeholder="Type.."> <div class="button-container"> <button id="save-input">SAVE INPUT</button> </div> <ul id="view"> </ul> </div>

Mi código JS está a continuación:

 let list = []; const input = document.getElementById('input'); const saveInput = document.getElementById('save-input'); const view = document.getElementById('view'); const localList = JSON.parse( localStorage.getItem("list") ) if (localList) { list = localList; render(list); } saveInput.addEventListener('click', function (){ if(input.value){ list.push(input.value); input.value = ''; localStorage.setItem('list', JSON.stringify(list)); render(list); } }) let remove = document.querySelectorAll(".remove"); Array.from(remove).forEach((el) => { el.addEventListener('click', function() { let index = el.getAttribute('data-index'); list.splice(index, 1); localStorage.setItem('list', JSON.stringify(list)); render(list); })}); function render(lst) { let listItems = ''; lst.forEach((element, index) => { listItems += ` <li> <a href='${element}'>${element}</a> <img src="images/remove.png" class="remove" data-index="${index}"> </li>` }); view.innerHTML = listItems; }

El problema con ese código es que solo funciona cuando la página se actualiza antes de cada eliminación. ¿Como puedo resolver esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Delegue un detector de eventos de click que elimine la entrada (usando Element.closest() para obtener el primer elemento principal li ) y lo elimine de localStorage :

 document.addEventListener('click', function(e) { if (e.target.classList.contains('remove')) { e.target.closest('li').remove() let index = e.target.getAttribute('data-index'); list.splice(index, 1); localStorage.setItem('list', JSON.stringify(list)); } })

Demostración de Jsfiddle: https://jsfiddle.net/Spectric/j4dc63ro/

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!