JavaScript 中的本地存储删除所有项目而不是一个

Local Storage in JavaScript deleting all items instead of just one

我一直在从事普通 JS 项目(没有 JQuery),我正在实施本地存储以在刷新时保存数据。我下面的代码是删除本地存储阵列中的所有项目,而不是我设置为要删除的特定项目。任何帮助表示赞赏!

function deleteItem(event)
{
    const item = event.target;
    const itemRemoveQuery = document.querySelector('.li-item');
    const itemRemove = itemRemoveQuery.innerHTML;

    if (item.classList[0] === "delete-btn")
    {
        const liItem = item.parentElement; 
        liItem.remove();
    }

    // Delete targeted item from local storage
    function removeLocalItems()
    {
        let items;
        let quantities;

        if (localStorage.getItem("items") === null || localStorage.getItem("quantities") === null)
        {
            items = [];
            quantities = [];
        }
        else
        {
            items = JSON.parse(localStorage.getItem("items"));
            quantities = JSON.parse(localStorage.getItem("quantities"));
        }

        for (let i = 0; i < items.length; i++)
        {
            var quantityRemove = quantities[i];

            console.log(quantityRemove);
            if (items[i] == itemRemove)
            {
                localStorage.removeItem('items', 'itemRemove');
                localStorage.removeItem('quantities', 'quantityRemove')
            }
        }
    }

    removeLocalItems();
}

localStorage 只接受一个参数,即要删除的项的键:https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem

您需要做的是改变您从 localStorage 解析的本地 itemsquantities 数组(删除适当的项目),然后执行 localStorage.setItem('items', items)localStorage.setItem('quantities', quantities).