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

廷帕

如何在没有方法的情况下完全删除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条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类常见问题

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Firefox中不会删除本地存储

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在会话中存储阵列

来自分类Dev

在Rails中存储阵列

来自分类Dev

删除本地存储

来自分类Dev

删除本地存储

来自分类Dev

将阵列保存到Chrome本地存储

来自分类Dev

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

来自分类Dev

删除阵列中的用户

来自分类Dev

删除阵列中的用户

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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