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

时间:2015-05-25 13:46:27

标签: 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();
    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数组,其中所有将被点击的引号都将其id保存在cookie数组“fav”中,因此我可以向用户显示所有已保存引号的列表。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

编写数组

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

阅读cookie

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