【问题标题】:Implementing localstorage实现本地存储
【发布时间】:2018-06-19 19:30:50
【问题描述】:

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

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

请您向我解释一下我在这里做错了什么,因为我想了解如何在这种情况下正确使用本地存储。我认为这也将帮助我理解如何在正确解析 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>

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

【问题讨论】:

  • 错误您将存储数据设置为空篮子,然后立即将本地数据设置为该空篮子,并且您永远不会更新或更改这些变量,因此您将始终有一个空篮子

标签: javascript html


【解决方案1】:

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

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

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

https://jsfiddle.net/3tdn2jrv/

【讨论】:

  • 您好 Parithiban,非常感谢您的回答。它现在正确显示数量。只是一个快速跟进的问题。当我刷新页面时,数字不再存在。本地存储的目的不是保留数据吗?如前所述,这对我来说是全新的,也是我作为一名自学成才的开发人员的第一个重大项目,所以我仍在学习,所以我知道这个问题可能听起来很傻,但我只需要了解更多关于这个特定方面的信息.再次感谢您的回答。
  • 因为您每次都在创建一个新变量并将其分配给let basketData。如果您不仅需要设置localStorage.setItem("basketData", JSON.stringify(basketData));,则需要检查localstorage.basketData 是否可用
  • @jimmy118 我已经创建了一个小提琴,看看它
  • 我非常感谢您花时间为我提供那个小提琴,我将看看、研究并尝试理解......我已经可以看到它正在帮助我理解整个本地存储更好的!!非常感谢再次哥们
猜你喜欢
  • 2012-01-08
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 2013-08-04
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多