Как удалить указанный c localStorage, когда кто-то нажимает значок «tra sh», который избавляется от внешнего интерфейса, но не локального - PullRequest
1 голос
/ 22 апреля 2020

У меня есть это

const addForm = document.querySelector('.add')
const list = document.querySelector('.todos')
const search = document.querySelector('.search input')
let itemsArray = localStorage.getItem('items') ? 
JSON.parse(localStorage.getItem('items')) : []

localStorage.setItem('items', JSON.stringify(itemsArray))
const data = JSON.parse(localStorage.getItem('items'))


function noenter() {
    return !(window.event && window.event.keyCode == 13); }

Вот как у меня было изначально

list.addEventListener('click', e => {

    if(e.target.classList.contains('delete')) {
        e.target.parentElement.remove()
        localStorage.removeItem(itemsArray[0]) // I'm trying this but doesn't do anything....
        console.log(localStorage.get) // left off need to remove storage
    }

})

Первоначально, когда вы нажимаете значок удаления, он удаляет родительский класс класса, и Вот как он удаляет его из Интернета, но на самом деле он никогда не сохранялся, а хранил его. Я пытаюсь добавить эту функцию прямо сейчас.

1 Ответ

0 голосов
/ 22 апреля 2020

Если я правильно понял ваш вопрос и код, вы должны перестроить свой itemsArray без элемента, который должен быть удален, и сохранить его обратно в localStorage, что-то вроде:

const itemsArray = JSON.parse(localStorage.getItem('items')); // get data from LS
itemsArray.splice(0, 1); // remove the item on position 0
localStorage.setItem('items', JSON.stringify(itemsArray)); // save it back to LS

В вашем коде, вызов localStorage.removeItem(itemsArray[0]) пытается удалить из localStorage и элемент, индекс которого является значением itemsArray[0]. Этот элемент вряд ли существует, и поэтому ваш код не имеет никакого эффекта.

...