Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

245
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda