javascript - 我如何在本地存储中存入一笔款项?
问题描述
多亏了一个函数,我想把总和放在我的 localStorage 中,因为我必须创建函数。当我将篮子的总数放入本地存储时,导航会更改数字。所以,刷新页面时,总数被计为一篇文章,我在 html 标签“nan”上有一个错误。你能解释一下我的代码有什么问题吗?
let totalityPrice = document.querySelector('.subtotal');
let products = [];
let Total = 0;
function displayProduct() {
if (localStorage.length > 0) {
for (let key in localStorage) {
let product = JSON.parse(localStorage.getItem(key));
document.querySelector('.cart span').textContent = localStorage.length;
if (product) {
products.push(key);
cartTablebody.innerHTML += `
<tr>
<td>${product.title}</td>
<td>${product.price / 100}</td> //price=API data//
</tr>
`;
Total += product.price / 100;
}
}
}
}
displayProduct();
function calculatePrice() {
totalityPrice.innerText = Total;
console.log(Total);
//localstoragesetItem//
}
calculatePrice();
解决方案
听起来里面有些东西localStorage
不是购物车物品。在处理之前检查每个项目是否具有所有必需的属性。
而不是使用localStoage.length
作为产品计数.cart span
,使用products.length
。
let totalityPrice = document.querySelector('.subtotal');
let products = [];
let Total = 0;
function displayProduct() {
if (localStorage.length > 0) {
for (let key in localStorage) {
let product = JSON.parse(localStorage.getItem(key));
if (product && "title" in product && "price" in product) {
products.push(key);
cartTablebody.innerHTML += `
<tr>
<td>${product.title}</td>
<td>${product.price / 100}</td> //price=API data//
</tr>
`;
Total += product.price / 100;
}
}
}
}
displayProduct();
function calculatePrice() {
totalityPrice.innerText = Total;
console.log(Total);
document.querySelector('.cart span').textContent = products.length;;
}
calculatePrice();
推荐阅读
- python - 如何在命令提示符中使用来自 GitHub 的 PIP 安装包?
- c# - 如何搜索锯齿状数组
- javascript - 格式化文本输入 onChange 以获得 HH:MM:SS
- javascript - 尝试在 rasa-webchat 中集成外部 javascript 代码时无法 addEventListener()
- swift - 当应用程序关闭时,如何从用户向用户发送推送通知?
- javascript - Bootstrap 5 模态和视频 js:addEventListener 错误
- amazon-web-services - 在 AWS 中将数据从服务器发送到客户端(Web、移动设备)的解决方案?
- numpy - 翻译 OpenCl 代码以进行 CPU 编译
- java - 使用 Spring 的 RESTful API 端点
- axios - 使用 jest 和 testing-library 在 react 组件中测试多个 axios 调用