从$ .cookie中删除特定的json对象

时间:2014-10-18 00:14:31

标签: jquery

我有一个简单的购物车,用户将产品添加到购物车。每个添加的产品都作为对象保存到$ .cookie。

当用户删除产品时,该产品对象将从Cookie中删除或数量被删除一个。我相信更新那些对象的数量是可行的。

我的问题是我不认为我正确使用拼接,我无法弄清楚如何使这项工作成为结果。基本上发生的事情是第一个产品对象总是从$ .cookie中删除,而不是那个匹配被删除的特定对象。

下面是我的代码。我希望有人能发现问题。我怀疑是导致问题的“1”(第一个元素)>> current_objs.splice(current_objs [I],1)

这是我的代码。

$('body').on('click', '.remove_me', function(e) {

  var productid = $(this).data('productid');

  var current_objs = $.cookie("obj");

  for (i = 0; i < current_objs.length; i++) {

    if (current_objs[i].productid === productid.toString()) {

      if (current_objs[i].qty == 1) {

        current_objs.splice(current_objs[i],1);          

        $.cookie("obj",current_objs, { path: '/' });

      } else {

        current_objs[i].qty = current_objs[i].qty - 1;

        $.cookie("obj",current_objs, { path: '/' });
      }

    }

  }

});

提前谢谢。

1 个答案:

答案 0 :(得分:0)

javascript array.splice()包含以下参数:

array.splice(index, howMany, item1, item2, .., itemN)

其中

  • index是数组中用于添加/删除项目的索引。
  • howMany是要删除的元素数。
  • item1-N是要添加的项目。

请改为尝试:

current_objs.splice(i, 1); // remove 1 item and index i