如何在 jquery cookie 中存储数组? [英] how to store an array in jquery cookie?

查看:153
本文介绍了如何在 jquery cookie 中存储数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 jQuery cookie 中存储一个数组,请有人帮我吗?

I need to store an array in a jQuery cookie, any one help me please?

推荐答案

仍然不确定您需要什么,但我希望这会有所帮助.这是一个允许您访问任何页面上的项目的示例,它只是一个示例!它使用 cookieName 来跨页面识别它.

Still not exactly sure what you need but i hope this will help. This is a sample that will allow you to access the items on any page, its just a sample! It uses the cookieName to identify it across the pages.

//This is not production quality, its just demo code.
var cookieList = function(cookieName) {
//When the cookie is saved the items will be a comma seperated string
//So we will split the cookie by comma to get the original array
var cookie = $.cookie(cookieName);
//Load the items or a new array if null.
var items = cookie ? cookie.split(/,/) : new Array();

//Return a object that we can use to access the array.
//while hiding direct access to the declared items array
//this is called closures see http://www.jibbering.com/faq/faq_notes/closures.html
return {
    "add": function(val) {
        //Add to the items.
        items.push(val);
        //Save the items to a cookie.
        //EDIT: Modified from linked answer by Nick see 
        //      http://stackoverflow.com/questions/3387251/how-to-store-array-in-jquery-cookie
        $.cookie(cookieName, items.join(','));
    },
    "remove": function (val) { 
        //EDIT: Thx to Assef and luke for remove.
        indx = items.indexOf(val); 
        if(indx!=-1) items.splice(indx, 1); 
        $.cookie(cookieName, items.join(','));        },
    "clear": function() {
        items = null;
        //clear the cookie.
        $.cookie(cookieName, null);
    },
    "items": function() {
        //Get all the items.
        return items;
    }
  }
}  

所以在任何页面上你都可以得到这样的项目.

So on any page you can get the items like this.

var list = new cookieList("MyItems"); // all items in the array.

向 cookieList 添加项目

Adding items to the cookieList

list.add("foo"); 
//Note this value cannot have a comma "," as this will spilt into
//two seperate values when you declare the cookieList.

以数组形式获取所有项目

Getting all the items as an array

alert(list.items());

清除物品

list.clear();

你可以很容易地添加额外的东西,比如 push 和 pop.再次希望这会有所帮助.

You can add additional things like push and pop quite easily. Again hope this helps.

编辑如果您在使用 IE 时遇到问题,请参阅 bravos 回答

EDIT See bravos answer if you having issues with IE

这篇关于如何在 jquery cookie 中存储数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆