在 Jquery 中创建或更新 cookie 数组
Create or Update cookie array in Jquery
如果值为 0,我想创建,如果值为 1,则更新。
所以我写了这个,
var juiceCart = [{
'name': val,
'count': unTouch
}];
if (value == 0) {
console.log('create cookie');
$.cookie("juiceCart", JSON.stringify(juiceCart));
doDummyCall();
} else {
console.log('update cookie');
$.cookie("juiceCart", JSON.stringify(juiceCart));
doDummyCall();
}
doDummyCall()
内
我只是在做一个 ajax 调用来更新标头和
var cookieJuiceCart = $.parseJSON($.cookie("juiceCart"));
$.each(cookieJuiceCart, function (index, value) {
console.log('Id : ' + value.name);
console.log('Value : ' + value.count);
});
然后在每个函数中打印 cookie 以了解其中存在的所有项目。
如果我添加第一项,它正在打印
编号 : 1值 : 1
然后,如果我添加第二个项目,它正在打印
编号 : 2值 : 1
但我期望的是
编号 : 1值 : 1编号 : 2值 : 1
我知道旧值被替换了,因为我没有推动其中的值。
所以,我做到了
juiceCart.push({'name': val, 'count': unTouch});
但它只是用新价值替换旧值。
如何检查数组中是否存在旧值并根据它创建或更新。
在我看来,实际问题是您的数组:
var juiceCart = [{
'name': val,
'count': unTouch
}];
这是使用 vars 更新相同的对象而不是推送新对象。
您可以这样做:
var juiceCart = $.parseJSON($.cookie("juiceCart")) || []; // create a blank array taken from @apokryfos's answer.
juiceCart.push({'name': val, 'count': unTouch}); // <---now push it here.
这样,您就可以在每次调用新对象时推送它。
这是我从这个问题中得到的。这有点解释得很差,所以我可能不明白你需要做什么。
var juiceCart = $.parseJSON($.cookie("juiceCart")) || [];
var newItem = true;
juiceCart.each(function (i, v) {
if (v.name == val) { v.count++; newItem = false; }
});
if (newItem) {
juiceCart.push({'name': val, 'count': unTouch});
}
$.cookie("juiceCart", JSON.stringify(juiceCart));
doDummyCall();
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- 使用AngularJS更新cookie
- 可以在不重新加载页面的情况下更新javascript中的cookie
- 如何在Angular js(或)JQuery中更新Cookie值
- 如何更新 cookie 值(并且不更改到期日期)?JavaScript
- 为什么这个 JQuery Cookie 值没有更新
- 在 Jquery 中创建或更新 cookie 数组
- 为什么不是't我的cookie更新
- 无法在asp.net中使用jquery更新cookie
- Jquery cookie变量没有更新
- 如何将更新的cookie发送到applet
- 如何更新JavaScript cookie
- 更新cookie中的数组
- 使用cookie更新唯一视图
- 如何在cookie中存储javascript函数的更新
- 不断更新cookie会导致浏览器崩溃
- 更新javascript cookie值,不删除以前的值