从本地存储中删除整个阵列

廷帕

如何在没有方法的情况下完全删除localStoragelocalStorage.clear();

我有一个购物车,您可以在其中存储您将要购买的产品,并且存储在本地存储中进行。目前“清除购物车”按钮可用于localStorage.clear();方法,但我也有一个表格,您可以在其中删除单个产品。但是,如果您使用同一行上的“删除”按钮删除整个表,并且它恰好是最后一个产品,则本地存储仍将有一个空数组,并被视为 NOT null

这是我删除项目的方法:

function removeItem(itemId) {
//removes the parent row of table
$('#product-table').on('click', '.remove-item', function(e) {
    $(this).closest('tr').remove();
});

var index = -1;
var obj = JSON.parse(localStorage.getItem("items")) || {}; //fetch cart from storage
var items = obj || []; //get the products
$.each(items, function(key, value) {
    if (key === itemId) {
        items.splice(key, 1); //remove item from array
    }
});
localStorage.setItem("items", JSON.stringify(obj)); //set item back into storage

sum = 0;
$.each(items, function(key, value) {
    sum += value.itemPrice;
});
$("#summary").html(sum.toFixed(2) + "€");
updateCartCount();
}

它正确删除了项目,但是每当我删除最后一个产品时,table元素并添加一个段落,说“您的购物车是空的。返回商店”。

以下功能如下:

function hideElements() {
if ($(".cart-wrapper").length) {
    if (localStorage.getItem("items") === null) {
        $("#products").css("display", "none");
        $("#empty").css("display", "block");
        $(".btn-clear").css("display", "none");
    } else {
        $("#products").css("display", "block");
        $("#empty").css("display", "none");
        $(".btn-clear").css("display", "block");
    }
}
}

hideElements 函数不会将本地存储识别为空,因为它表明存在一个空数组对象。

如果移除的产品是购物车上的最后一个产品,我如何通过移除整个本地存储来实现这一点?我试过localStorage.getItems("items").length != 0等等,但无济于事。

下图显示了我的“空”本地存储:

本地存储

艾马尔汗

什么localstorage.get()回报是一个字符串,而不是JSON,所以你需要做的是解析字符串即localStorage.getItem('items')返回"[]"其具有长度等于2。你需要做的是什么JSON.parse(localstorage.getItem('item')).length

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何从Redux存储中删除阵列?

来自分类Dev

删除本地存储

来自分类Dev

在会话中存储阵列

来自分类Dev

将阵列添加到本地存储并检索该阵列

来自分类Dev

在Rails中存储阵列

来自分类Dev

将阵列保存到Chrome本地存储

来自分类Dev

如何从Angularjs的本地存储阵列中删除特定元素?

来自分类Dev

删除阵列中的用户

来自分类Dev

是否可以将整个元素存储到本地存储中?

来自分类Dev

如何在Flutter中从本地存储中删除文件?

来自分类Dev

如何更新本地存储中阵列中的数量

来自分类Dev

如何从Redux存储中删除阵列?

来自分类Dev

从本地存储和VueX中删除项目

来自分类Dev

如何删除本地存储中的特定项目?

来自分类Dev

删除本地存储阵列中的特定元素

来自分类Dev

如何将时间戳放入本地存储的阵列中?

来自分类Dev

将用户输入存储在本地存储中的特定阵列中

来自分类Dev

如何从本地存储中删除jwt令牌

来自分类Dev

如何删除阵列中使用本地存储保存的对象?

来自分类Dev

JQuery和Phonegap将本地存储中的数据保存在阵列中

来自分类Dev

从本地存储中删除在<li>中动态显示的项目

来自分类Dev

从本地存储中删除多行数据

来自分类Dev

如何删除本地存储中的数据

来自分类Dev

Firefox中不会删除本地存储

来自分类Dev

如何删除存储在本地存储中的数组元素

来自分类Dev

删除阵列中的用户

来自分类Dev

无法从本地存储中删除项目-JavaScript

来自分类Dev

删除本地存储

来自分类Dev

从本地存储阵列中删除 1 个项目