jquery cookie存储对象的方法
2016-06-24 09:46
337 查看
jquery cookie的插件让程序猿很方便的使用cookie来存储一些数据,但是$.cookie()只能存储字符串,如果想存储一些类似对象的就没办法了,这时候我们可以这样解决问题。我们可以存储JSON字符串在jquery的数组中,再用特殊符号,将数组转成字符串存储在$.cookie中,下面是对应的代码
var player = {playerid:playerid, playername:playername};
var playerStr = JSON.stringify(player);
players.push(playerStr);
$.cookie("comparePlayers", players.join("$"), { path : '/'});
关键是要使用JSON.stringify()函数先将JSON对象转成JSON字符串。
下面是取出来的操作
用split()函数转化为数组后将数组中的字符串用$.parseJSON转化为对象,就可以进行对象的操作了
//左侧添加 $(".add_ico").live("click", function() { var tr = $(this).parents("tr"); var playerid = tr.attr("val"); var playername = tr.children().eq(1).text(); var players = $.cookie("comparePlayers"); if(players == null || players =="") { players = []; var player = {playerid:playerid,playername:playername}; var playerStr = JSON.stringify(player); players.push(playerStr); $.cookie("comparePlayers", players.join("$"), { path : '/'}); } else { players = players.split("$"); if(players.length < 5) { if(keyInJsonArray(playerid, players) == -1) { var player = {playerid:playerid, playername:playername}; var playerStr = JSON.stringify(player); players.push(playerStr); $.cookie("comparePlayers", players.join("$"), { path : '/'}); } } else { alert("比对人数已经到达上限"); return; } } addComparePanel(playerid, playername); $("#compareSize").text(players.length); $(".contrast").show(); $(this).hide(); $(this).siblings(".del_ico").css({"display":"block","left":"-25px"}); });
var player = {playerid:playerid, playername:playername};
var playerStr = JSON.stringify(player);
players.push(playerStr);
$.cookie("comparePlayers", players.join("$"), { path : '/'});
关键是要使用JSON.stringify()函数先将JSON对象转成JSON字符串。
下面是取出来的操作
//维持面板状态 function updateComparePanel() { var players = $.cookie("comparePlayers"); if(players != null && players != "") { players = players.split("$"); $("#player").html(); for(var i = 0;i < players.length; i++) { jsonObj = $.parseJSON(players[i]); addComparePanel(jsonObj.playerid, jsonObj.playername); } $("#compareSize").text(players.length); $(".contrast").show(); } else { $("#compareSize").text(0); $(".contrast").fadeOut(1000); } } function addComparePanel(playerid, playername) { var json = "{\"rolename\" : \"" + playername + "\", \"accountid\" : \"" + playerid + "\"}"; var html = template("playerData", $.parseJSON(json)); $("#player").append(html); }
用split()函数转化为数组后将数组中的字符串用$.parseJSON转化为对象,就可以进行对象的操作了
相关文章推荐
- jquery.dragsort实现列表拖曳、排序
- php 学习笔记之jquery
- jQuery Ajax
- jQuery如何获取动态添加的元素
- jQuery模仿单选按钮选中效果
- jQuery给div,Span, a ,button, radio 赋值与取值
- jQuery设置单选按钮radio选中/不可用的实例代码
- jQuery插件扩展extend的简单实现原理
- jQuery实现点击弹出背景变暗遮罩效果实例代码
- jQuery下拉框的简单应用
- jQuery插件cxSelect多级联动下拉菜单实例解析
- jquery表单插件Autotab使用方法详解
- jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
- jQuery插件passwordStrength密码强度指标详解
- jQuery获取多选下拉框选中的值
- 鼠标移入/移出改变图片透明度_jQuery效果
- jquery延时载入动画焦点图- 有点类似视差动画
- jQuery动画
- jQuery源代码自我理解(一)
- jquery中ajax方法load get post与脚本文件如php脚本连接时,脚本怎样接受数据?