Javascript 使用JS/JQuery创建永不过期的Cookie数组?

Javascript 使用JS/JQuery创建永不过期的Cookie数组?,javascript,jquery,arrays,cookies,Javascript,Jquery,Arrays,Cookies,我有一个网站与报价,并希望用户能够最喜欢的报价点击明星图标。我有以下代码: jQuery('.fav').click(function(event) { event.preventDefault(); $this = $(this).parent(); var id = $this.attr("data-id"); // Build the expiration date string: var expiration_date = new Date();

我有一个网站与报价,并希望用户能够最喜欢的报价点击明星图标。我有以下代码:

jQuery('.fav').click(function(event) {
    event.preventDefault();
    $this = $(this).parent();
    var id = $this.attr("data-id");

    // Build the expiration date string:
    var expiration_date = new Date();
    var cookie_string = '';
    expiration_date.setFullYear(expiration_date.getFullYear() + 1);
    // Build the set-cookie string:
    cookie_string = "fav="+id+"; path=/; expires=" + expiration_date.toGMTString();
    // Create/update the cookie:
    document.cookie = cookie_string;
});

但这只保存了一个cookie“fav=id”。我想创建一个cookie数组,其中所有将被单击的引号都保存在cookie数组“fav”中,因此我可以向用户显示所有保存引号的列表。如何实现这一点?

使用JSON.stringify()和JSON.parse()方法将数组或对象作为字符串存储在cookie中,并在以后检索

Cookies只能作为字符串保存。如果我想模拟一个数组,我会将它序列化并反序列化。可以使用库写入数组

var cookieArray= {};
cookieArray[id] = true; //or whatever value
var stringifiedArr = JSON.stringify(cookieArray);
$.cookie("favs",stringifiedArr , { path: '/' });
读饼干

var arrFromCookie = $.cookie("favs");
var favsCookieData = JSON.parse(arrFromCookie);

谢谢,我现在可以存储它了,但是每次单击时cookie都会被覆盖。为什么它不向现有的cookie添加新值而不是覆盖它呢?所以在更新之前只需解析它,并在字符串化againThanks之前更新数组!这对我很有帮助。