Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当有人单击“本地存储”时,如何删除特定的本地存储;“垃圾”;图标,该图标将其从前端删除,但不是本地_Javascript_Local Storage_Backend_Web Frontend - Fatal编程技术网

Javascript 当有人单击“本地存储”时,如何删除特定的本地存储;“垃圾”;图标,该图标将其从前端删除,但不是本地

Javascript 当有人单击“本地存储”时,如何删除特定的本地存储;“垃圾”;图标,该图标将其从前端删除,但不是本地,javascript,local-storage,backend,web-frontend,Javascript,Local Storage,Backend,Web Frontend,我有这个 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')) : []

我有这个

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
    }

})

最初,当您单击delete图标时,它将删除该类的父类,这就是它从web临时文件中删除该类的方式,但它从未实际保存或存储该类。我正在尝试添加该函数

如果我正确理解了您的问题和代码,您应该重新生成您的
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.removietem(itemsArray[0])
的调用试图从
localStorage
中删除索引为
itemsArray[0]
值的项。此项不太可能存在,这就是您的代码无效的原因。

如果我正确理解了您的问题和代码,您应该在不删除该项的情况下重新生成您的
itemsArray
,并将其存储回本地存储,例如:

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.removietem(itemsArray[0])
的调用试图从
localStorage
中删除索引为
itemsArray[0]
值的项。此项不太可能存在,这就是代码无效的原因。

这是否回答了您的问题?这回答了你的问题吗?我想我接下来的问题是,我如何判断某人点击的位置。最初我所有的是如果ti包含删除类删除父。。。如何将其转换为特定的位置。如果我有一个从上到下的列表,我是否替换了let itemsArray=localStorage.getItem('items')?JSON.parse(localStorage.getItem('items')):[]与您的代码一起使用,但现在当我刷新选项卡时,它不会停止我的后续问题,即,如何确定某人单击的位置。最初我所有的是如果ti包含删除类删除父。。。如何将其转换为特定的位置。如果我有一个从上到下的列表,我是否替换了let itemsArray=localStorage.getItem('items')?JSON.parse(localStorage.getItem('items')):[]与您的代码一起使用,但现在当我刷新该选项卡时,它不会保留