Javascript 我的“添加到购物车”功能是替换购物车中的项目,而不是添加
我有一个存储产品对象的数组,我将产品详细信息存储在会话存储中,然后获取详细信息并将这些参数用于我的“添加到购物车”功能,但它不是添加项目,而是用新项目替换数组中的最后一个项目 如果我单独调用addtocart函数并为其提供参数,那么它工作正常,但一旦我从另一个函数调用它,它就不会添加,而是替换购物车中的项目 这是我的“添加到购物车”功能Javascript 我的“添加到购物车”功能是替换购物车中的项目,而不是添加,javascript,jquery,Javascript,Jquery,我有一个存储产品对象的数组,我将产品详细信息存储在会话存储中,然后获取详细信息并将这些参数用于我的“添加到购物车”功能,但它不是添加项目,而是用新项目替换数组中的最后一个项目 如果我单独调用addtocart函数并为其提供参数,那么它工作正常,但一旦我从另一个函数调用它,它就不会添加,而是替换购物车中的项目 这是我的“添加到购物车”功能 //add item to cart function addToCart(name, type, price, size, count){ for(
//add item to cart
function addToCart(name, type, price, size, count){
for(var i in cart){
if(cart[i].name === name){
cart[i].count += count;
return;
}
}
var product = new Product(name, type, price, size, count);
cart.push(product);
saveCart();
}
以及调用add to Cart的函数
//set up for add to cart function
function cartSetUp(){
var name = sessionStorage.getItem("product name");
var price = JSON.parse(sessionStorage.getItem("product price"));
var type = sessionStorage.getItem("product type");
var image = sessionStorage.getItem("product image");
var count = $("#product-quantity").val();
var size = $('input[name=size]:checked').val();
addToCart(name, type, price, size, count)
}
什么是
saveCart()
?当您在调试器中单步执行代码时,问题具体发生在何处?您应该将cart obj从会话中取出并传递到add cart函数中,然后只有它才能附加现有的cart@Davidsave cart()将购物车保存在本地存储中函数saveCart(){localStorage.setItem(“购物车”,JSON.stringify(购物车));}
我相信问题出在您未提供的代码中。请尝试在购物车推送(产品)之前添加控制台.log(购物车)
命令,并且在您从localStorage加载购物车之后立即加载。我怀疑,在从localStorage加载购物车和将新产品附加到购物车之间,您有时会丢失购物车中的最后一项