如何解决将Cookies保存到Javascript关联数组中
|| 我在使用Cookie时遇到了麻烦。我有一堆链接,当单击它们时会创建一个cookie。对于每个链接,我需要能够将该Cookie保存到关联数组。棘手的部分是cookie值是动态创建的。直到它们被单击(使用id属性),我们才知道它们是什么。 这是我用来创建Cookie的点击函数: $ j(\'a.createCookie \')。click(function(e){ var cookieName = \"InsightsCookie\";
var cookieValue = $j(this).attr(\"id\");
$j.cookie(cookieName,cookieValue,{expires: 365,path: \'/\'});
});
任何帮助将非常感激。
解决方法
要将Cookie保存到全局关联数组,您可以执行以下操作:
var my_global_assoc_array = {};
$j(\'a.createCookie\').click(function(e) {
var cookieName = \"InsightsCookie\";
var cookieValue = $j(this).attr(\"id\");
$j.cookie(cookieName,cookieValue,{expires: 365,path: \'/\'});
// save just the value of the cookie
my_global_assoc_array[cookieName] = cookieValue;
// or save the whole cookie because you may want to know more about the cookie path,cookie expiration,etc
my_global_assoc_array[cookieName] = $j.cookie(cookieName);
});
然后在以后的某个时刻,您可以遍历assoc数组中收集的内容:
for(var i in my_global_assoc_array)
console.log(\"cookie name = \" + i + \",cookie value = \" + i);
我对问题的这一部分感到困惑:\“棘手的部分是动态创建cookie值。\”由于cookie值只是my_global_assoc_array中的值,为什么您需要事先知道这些值是什么?
更新资料
如果希望单个cookie包含my_global_assoc_array的所有值,则在set cookie例程中使用循环。像这样:
var my_global_assoc_array = {};
$j(\'a.createCookie\').click(function(e) {
var cookieName = \"InsightsCookie\";
var cookieValue = $j(this).attr(\"id\");
// save all values of the cookie in an assoc array to uniqueify the list.
my_global_assoc_array[cookieValue] = 0;
// temporarily turn cookieValue into an Array,add all the cookieValues to it and
// use join to stringify it to a CSV value of the values.
cookieValue = new Array();
for(var i in my_global_assoc_array)
cookieValue.push(i);
cookieValue = cookieValue.join(\',\');
// store cookieValue which is now a CSV list of cookieValues
$j.cookie(cookieName,path: \'/\'});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。