刚刚开始使用JS,已经阅读了一些SO答案,例如this或this one或this other one,但仍无法解决此问题。我有一个inventory
项列表,无论何时单击,我都希望将该项的id(存储为数据属性)推送到sessionStorage
购物车对象。下面没有正常运行的代码,注释显示输出是什么。看起来我遇到问题JSON.stringifying
数组。
非常感谢。
var cart = [];
$(document).on("click", "#inventory", function() { // let's say i clicked on the #inventory whose data attribute for inventory_id is 13
console.log($(this).data('inventory_id')) // outputs 13
cart.push($(this).data('inventory_id'))
});
console.log(cart) // outputs an array where Array[1] = 13 in last example
console.log(JSON.stringify(cart)) // outputs a blank: []
localStorage.setItem("cart", JSON.stringify(cart));
console.log(localStorage.getItem("cart")) // outputs a blank: []
答案 0 :(得分:0)
根据评论讨论,正确的答案就是将localStorage.setItem
放在事件处理程序本身。
var cart = [];
$(document).on("click", "#inventory", function() { // let's say i clicked on the #inventory whose data attribute for inventory_id is 13
cart.push($(this).data('inventory_id'));
localStorage.setItem("cart", JSON.stringify(cart));
});