javascript - 实现本地存储

标签 javascript html

目前正在开发一个电子商务网站,这是我的第一个主要项目。我第一次为购物篮日期(数量、商品等)实现本地存储。

我想要实现的是,每当用户单击“添加到购物篮”按钮时,购物篮旁边的数字就会增加并显示。这非常简单,但对于本地存储,我显然做错了什么。我假设我检索错误?

请您向我解释一下我在这里做错了什么,因为我想弄清楚如何在这种情况下正确使用本地存储。我认为这将帮助我理解在正确解析 JSON 产品详细信息时如何正确实现它。

请看下面的代码。

let basketData = {
    basketQty: 0,
    products: []
}

//LOCAL STORAGE
localStorage.setItem("basketData", JSON.stringify(basketData));
let localData = JSON.parse(localStorage.getItem("basketData")); 

//INCREASE BASKET QTY INNER HTML
addToBasket.click(function(){
    basketData.basketQty++;
    if (basketData.basketQty > 0){
    $(basketQty).html(localData.basketQty);
}
})



<nav>

        <div class="logo">
            <img src="images/logo.png" alt="Prime Health Logo" />
        </div>

        <div class="nav-links">
            <ul>
                <li>VITAMIN & SUPPLEMENTS</li>
                <li>SPORTS & WORKOUT NUTRITION</li>
                <li>WEIGHT MANAGEMENT</li>
                <li>FREE FROM</li>
            </ul>
        </div>

        <div id="basket">
            <span id="item-count"></span>
            <i class="fas fa-shopping-basket"></i>
        </div>

    </nav>

非常感谢您抽出时间来提供帮助和回复!

最佳答案

您只是将其设置为变量,而不是在本地存储中更新它。另外,在 addToBasket 函数中,您需要检查本地存储中的数量并增加它,然后将新数量设置到本地存储。

localStorage.setItem("basketData", JSON.stringify({
    basketQty: 1,
    products: []
})); 

你可以引用这个例子。我为此创建了一个原始的解决方法,您会对它有更好的了解

https://jsfiddle.net/3tdn2jrv/

关于javascript - 实现本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50926278/

相关文章:

javascript - 带和不带 sleep 的递归异步

javascript - 如何CSS嵌套div来影响外部外部div?

jquery - 具有只读和可编辑部分的 HTML5 文本控件

php - Laravel:多个图像上的图像验证不起作用

javascript - 排序列表但保留 CSS 标记

javascript - 单击 Javascript slider 下方的按钮将其暂停几秒钟

javascript - 更新 : D3 won't draw chart data on load

javascript - Promise 并不总是从 Web 服务中获取所有值

html - 如何正确 float 跨度

html - DIV 不采用父级高度 3 列