jquery - jQuery中的变量问题(未定义)即使我检查它是否存在
问题描述
这是我的代码,如果遇到问题:
// WORKS
var cart;
var productlist = JSON.parse(localStorage.getItem('cart'));
// But if localStorage is empty go an error "productlist = undefined
// This was the solution, where I'm thinking about, but without success
if (typeof productlist !== "undefined") {
var productlist = JSON.parse(localStorage.getItem('cart'));
}else{
var productlist = [];
}
$('#addtocard').on('click', function(e) {
$('#bill-table > tbody > tr').each(function() {
if(product === undefined) {
var product = {};
}
product.naam = $(this).children('.naam').html();
product.type = $(this).data('type');
product.id = $(this).data('productid');
productlist.push(product);
});
console.log('--------------');
console.log('ProductList:'+JSON.stringify(productlist));
console.log('LocalStorage:'+localStorage.getItem('cart'));
localStorage.setItem("cart", JSON.stringify(productlist));
$('#json_producten').val(JSON.stringify(productlist));
e.preventDefault();
});
////////////////////////////////////////////////////
$('#json_producten').val(localStorage.getItem('cart'));
console.log('--------------');
console.log('ProductList:'+JSON.stringify(productlist));
console.log('LocalStorage:'+localStorage.getItem('cart'));
哪个部分起作用:如果您将单个产品放入购物车,则没有问题。如果您将一件商品两次放入购物车中,则没有问题。然后在一个数组中返回两个产品。
问题是,如果您将产品一放入购物车,然后转到另一个页面,隐藏的输入字段“#json_producten”会显示正确的购物车(产品一在里面)但是如果您在产品 2 上按 addtocard btn,她会否决当前购物车。
有人可以帮我吗?
解决方案
改变:
if (typeof productlist !== "undefined") {
var productlist = JSON.parse(localStorage.getItem('cart'));
}else{
var productlist = [];
}
到:
if(localStorage.getItem('cart') == null){
productlist = [];
}else{
productlist = JSON.parse(localStorage.getItem('cart'));
}
这是解决方案,但如果有更好的方法,请告诉我!
推荐阅读
- android - 如何在新版本的 android 上运行旧版本的 android 应用程序?
- spring - 用于授权代码的 Jhipster OIDC 配置
- python - 找不到函数的定义 - VSCode Python
- laravel - 我应该如何限制父模型在laravel中可以拥有的孩子数量
- python - 我不知道为什么我不断收到 AttributeError: 'tuple' object has no attribute 'size'
- php - 选择日期 flatpickr 后消失
- angular - 如何同时拥有 ReplaySubject 和 BehaviorSubject 功能
- python - 带有 while 循环验证的简单更改计算器
- amazon-web-services - 从 AWS SES 记录电子邮件集
- javascript - 如何用对象中提供的输入字段和值替换字符串中的占位符