如何将数据存储在数组中进行字符串化(javascript)

时间:2014-08-23 20:05:38

标签: javascript arrays json stringify session-storage

刚刚开始使用JS,已经阅读了一些SO答案,例如thisthis onethis 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: []

1 个答案:

答案 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));
});