javascript - Error when trying to recall saved data using localStorage
问题描述
I'm trying to display the counter on the innerHTML of the element, however, after pressing refresh on the document the counter disapears. I have no errors on my console either. Any suggestions? Thanks:
let CartCounter = document.getElementById("TotalItems");
let CartNumber = 0;
buttonFirst.addEventListener("click", function (event) {
event.preventDefault();
CartNumber += 1;
let CartStorage_Serialized = JSON.stringify(CartNumber);
localStorage.setItem("cartItems", CartStorage_Serialized);
let CartStorage_Deserialized = JSON.parse(localStorage.getItem("cartItems"));
CartCounter.innerHTML = CartStorage_Deserialized;
}
解决方案
When you're checking the contents of an html element with something like innerHTML
, you need to be sure the page has rendered first. Therefore, it's a good idea to stick it in a window.load listener like the code below.
Then, in that same listener, you can check localStorage for the value and if it's there, put it in the innerHTML.
In your button click, you can grab the current value for CartCounter, and to keep it a number (because when you get it from the innerHTML it will be a string), put a +
in front of it. Then you can add 1 and save it back to localStorage. If you're just storing numbers like this, you don't need to serialize the values.
let CartCounter
window.addEventListener('load', () => {
CartCounter = document.getElementById("TotalItems");
CartCounter.innerHTML = localStorage.getItem('cartItems') ? localStorage.getItem('cartItems') : 0;
})
let CartNumber = 0;
buttonFirst.addEventListener("click", (event) => {
event.preventDefault();
let CartNumber = +document.getElementById("TotalItems").innerHTML;
CartNumber ++;
localStorage.setItem("cartItems", CartNumber);
CartCounter.innerHTML = CartNumber;
}
推荐阅读
- r - 首先使用最短距离在传单中的地图上的 2 点之间绘制一条线
- android - 使用已知的 ssid 和密码让我的 Android 应用程序连接到 Raspberry Pi 4 wifi
- forms - 如何创建小部件并在我的表单中显示?
- mongodb - 为烧瓶 API 水平扩展 MongoDB 数据库并提供基于用户的访问控制
- python - Pandas 用“-”分割每一行的字符串
- javascript - 如何使用 for 循环为音频文件创建动态 URL?Javascript
- list - Flutter 按值排序列表
- c# - 需要通过与“dataAfter”比较来过滤“dataBefore”的数据
- javascript - 如何在 PHP 后获取动态未选中复选框的值
- django - 如何将 Token 添加到扩展 Django Rest Framework 中的用户模型的模型中?