我有一个简单的购物车,用户将产品添加到购物车。每个添加的产品都作为对象保存到$ .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: '/' });
}
}
}
});
提前谢谢。
答案 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