我需要在jQuery cookie中存储数组,任何一个可以帮我吗?
解决方法
仍然不能确定你需要什么,但我希望这将有所帮助。
这是一个示例,可以让您访问任何页面上的项目,它只是一个示例!
它使用cookieName来标识页面。
这是一个示例,可以让您访问任何页面上的项目,它只是一个示例!
它使用cookieName来标识页面。
//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,')); },"clear": function() { items = null; //clear the cookie. $.cookie(cookieName,null); },"items": function() { //Get all the items. return items; } } }
所以在任何页面上,你可以得到这样的项目。
var list = new cookieList("MyItems"); // all items in the array.
将项目添加到cookieList
list.add("foo"); //Note this value cannot have a comma "," as this will spilt into //two seperate values when you declare the cookieList.
将所有项目作为数组
alert(list.items());
清理物品
list.clear();
你可以很容易地添加其他的东西,如push和pop。
再次希望这有帮助。
编辑如果您有IE的问题,请参阅bravos答案