【问题标题】:How to store every content of an array in cookie [duplicate]如何将数组的每个内容存储在cookie中[重复]
【发布时间】:2013-01-11 23:39:56
【问题描述】:

可能重复:
how to store an array in jquery cookie?

如何在 javascript 中将数组的每个内容存储在 cookie 中,并且我还必须检索数组的所有术语? 我试过了,但我无法从 cookie 中取回项目....

我的代码在我试过的下面

var myArray=["123","234","32"];
$.cookie('myCookie', escape(myArray), { expires: 1});
var s = unescape($.cookie('myCookie');

【问题讨论】:

  • What have you tried?你搜索过关于cookies的教程吗?
  • 添加了 jQuery 标签,因为它看起来像那样......现在我们有了一个副本。看来您不应该使用 escapeunescape
  • 您的代码有错字。 var s = unescape($.cookie('myCookie'); 缺少最后一个括号
  • 我尝试删除 escape 和 unescape 但没有得到正确的解决方案。我可以将数组保存在 cookie 中,但是如何检索我无法执行的每个术语
  • 如果你使用这个cookie实现,看来你必须将json选项设置为true:github.com/carhartl/jquery-cookie#json

标签: javascript jquery


【解决方案1】:

使用 JQuery,您可以使用序列化函数来检索字符串中的所有数据:http://api.jquery.com/serialize/

【讨论】:

  • .seralize 跟数组没多大关系,就是把表单转成查询字符串...
【解决方案2】:

要在 JavaScript 中创建 cookie,您必须将字符串分配给 document.cookie

它采用name = value 格式的值,例如

document.cookie = 'data=hello; max-age=60; path=/; domain=yoursite.com';

在此处存储数组的最佳方法是使用JSON 和方法JSON.stringify()

var arr = ['hello', 'goodbye', 'au revoir'];
document.cookie = 'data=' + escape(JSON.stringify(arr)) + '; max-age=60; path=/; domain=yoursite.com'

(注意 cookie 必须

检索 cookie 有点困难,因为它是一个字符串,所以我借用了这个函数,它在字符串中搜索你的 cookie 名称,然后返回它的值:

// Source: http://www.thesitewizard.com/javascripts/cookies.shtml

function get_cookie ( cookie_name )
{
    var cookie_string = document.cookie ;
    if (cookie_string.length != 0) {
        var cookie_value = cookie_string.match (
                        '(^|;)[\s]*' +
                        cookie_name +
                        '=([^;]*)' );
        return decodeURIComponent ( cookie_value[2] ) ;
    }
    return '' ;
}

在我们的示例中,您可以这样使用它:

var cookie = get_cookie('data');
var arr = JSON.parse(cookie); // Convert JSON string back into array

注意,我使用JSON.parse() 将 JSON 字符串转换回 JavaScript 数组。

有关在 JavaScript 中使用 cookie 的更多信息,我建议您阅读:http://www.thesitewizard.com/javascripts/cookies.shtml

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多