Cookie是覆盖问题

时间:2014-11-21 19:04:49

标签: javascript jquery cookies

我有以下代码我使用Jquery cookie插件来设置cookie。我需要使用jquery将多个值存储到一个cookie变量,但是每次覆盖它都会存储多个值。请查看我的代码和帮助me。我有一个选择框,每次都会将其名称插入到cookie变量中。

$(".cookieul").on("click",function(){


    var a ='';
    var myCookies = [];
    var newValue = $(".client option:selected").text();
    a += newValue;


    myCookies.push(a);

    $.cookie("example", JSON.stringify(myCookies), { expires: 7 });


});

2 个答案:

答案 0 :(得分:0)

你可以这样写 -

$(".cookieul").on("click",function(){

    var newValue = $(".client option:selected").text();// your new selected text

    var old_value_json = $.cookie("example"); // check your plugin get cookie syntax
    var old_value_arr = [];
    old_value_arr = $.parseJSON(old_value_json); //converting your stored JSON string to javascript array

    old_value_arr.push(newValue ); // pushing new value to array

    $.cookie("example", JSON.stringify(old_value_arr ), { expires: 7 });//setting new value to cookie

});

答案 1 :(得分:0)

这解决了这个问题。还有其他更好的方法

    var myCookies = [];

$(".cookieul").on("click",function(){
     var newValue = $(".client option:selected").text();

     var old_value_json = $.cookie("example");
     myCookies = $.parseJSON(old_value_json)


     myCookies.push(newValue);

     $.cookie("example", JSON.stringify(myCookies), { expires: 7 });


     var storedAry = JSON.parse($.cookie('example'));

     console.log(unique(storedAry));

     function unique(list) {
            var result = [];
            $.each(list, function(i, e) {
                if ($.inArray(e, result) == -1) result.push(e);
            });
            return result;
        }


});