【发布时间】:2020-03-16 15:40:23
【问题描述】:
这是我的代码,如果遇到问题:
// 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她否决了当前的购物车。
谁能帮帮我?
【问题讨论】:
-
无法了解您遇到了什么问题以及在哪里?也不确定“在产品 2 上她否决了当前购物车”是什么意思。
-
如果您从产品 A 开始并将其放入购物车中,则可以,如果您将产品 A 两次放入购物车中,则没有问题。 #json_producten 的值是 Product A 的两倍。但问题是您将产品 A 放入购物车而不是导航到产品 B 并将其放入购物车,而不是产品 A(两次)消失了,只有产品 B 在购物车中。希望你明白我的意思。
标签: jquery arrays json local-storage