在cookie javascript中添加和计算对象

时间:2013-09-03 01:53:55

标签: javascript jquery cookies

我正在创建Add to cart模块。我有Add to cart按钮,当用户点击它时,它会将项目的JSON data注册到cookie。

这是项目对象的示例:

item =
     {
     DepartmentID :56,
     CategoryID:117,
     BrandID:19,
     BrandImage:"         ",
     BrandName:"General",
     Quantity:5,
     ID:706
     };

这就是我用cookie做的事情:

 $('#addToCart').click(function(){
     addObjToCookie('Cart',item);
 });

 function serializeObjToJSON(obj) {
    var json = $.toJSON(obj);
    return json;
 }

 function deserializeJSONToObj(json) {
    var obj = $.evalJSON(json);
    return obj;
 }
 function addObjToCookie(cookieName, obj) {
    var jsonObj = serializeObjToJSON(obj);
    $.cookie(cookieName, jsonObj);
 }

 function getDataFromCookie(cookieName){
    var obj = deserializeJSONToObj($.cookie(cookieName));
    return obj;
 }
  1. 当用户点击$(cookie('Cart'))按钮时,如何将项目对象附加到Add to cart,格式为:

    [{"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":"         ","BrandName":"General","Quantity":5,"ID":706},
     {"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":"         ","BrandName":"General","Quantity":1,"ID":707}];
    
  2. 如何计算Cart Cookie中的项目,在此示例中,结果为2

  3. 如果Cart中的项目存在,则增加Quantity + 1。
  4. 非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

以下是回答1&的调整2

function addObjToCookie(cookieName, obj) {

  // When adding see what's in there
  var currentCart = getDataFromCookie( cookieName );

  // Add what's new
  currentCart.push( obj );

  // Save new contents
  $.cookie(cookieName, serializeObjToJSON( currentCart ) );
}

function getDataFromCookie(cookieName){

  var val = $.cookie(cookieName);

  // Make sure this returns something valid if it's not there
  if ( !val ) {
    return [];
  }

  // No need to save off something if you're not doing anything with it
  return deserializeJSONToObj( val );

}

对于#3,在实际保存新的cookie内容之前,循环返回值直到找到匹配,如果你确实修改了它而不是推送到数组。

如果您尝试循环并且它不起作用,请发布您的尝试。我喜欢帮助但不是从头开始编写代码,所以你也可以学习一些代码。