您的位置:首页 > Web前端 > JQuery

jquery cookie存储对象的方法

2016-06-24 09:46 337 查看
jquery cookie的插件让程序猿很方便的使用cookie来存储一些数据,但是$.cookie()只能存储字符串,如果想存储一些类似对象的就没办法了,这时候我们可以这样解决问题。我们可以存储JSON字符串在jquery的数组中,再用特殊符号,将数组转成字符串存储在$.cookie中,下面是对应的代码

//左侧添加
$(".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转化为对象,就可以进行对象的操作了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: