Javascript 如何通过这个包含多个cookie的JSON数组来获取键值对?
我可能完全错了,所以我重视任何意见和建议。。。 我试图通过使用(以前称为jquerycookie)插件在单击功能期间设置cookie,将面板状态保存在自定义UI中 下面是我用来打开/关闭面板的操作,我添加了一个if/else语句来设置或删除cookieJavascript 如何通过这个包含多个cookie的JSON数组来获取键值对?,javascript,jquery,arrays,json,cookies,Javascript,Jquery,Arrays,Json,Cookies,我可能完全错了,所以我重视任何意见和建议。。。 我试图通过使用(以前称为jquerycookie)插件在单击功能期间设置cookie,将面板状态保存在自定义UI中 下面是我用来打开/关闭面板的操作,我添加了一个if/else语句来设置或删除cookie $(".panel-collapse").on("click",function(){ panel_collapse($(this).parents(".panel")); $(this).parents(".dropdown")
$(".panel-collapse").on("click",function(){
panel_collapse($(this).parents(".panel"));
$(this).parents(".dropdown").removeClass("open");
var panelid = $(this).closest('.panel').attr('id');
var cookieChk = Cookies.get(panelid);
if (cookieChk == null) {
Cookies.set(panelid, 'closed');
} else {
Cookies.remove(panelid, 'closed');
}
return false;
});
这可以很好地为我的面板创建所需的cookie,其中键是面板的ID,值为“closed”
然后我试图用这些cookies来保存面板的关闭状态
有了JSCookie,我就可以使用
Cookies.getJSON();
如果我登录到console,它将返回我的所有cookie,如下所示:
Object {pnl1: "closed", pnl2: "closed"} and so forth...
所以它似乎在归还我需要的东西。我想做的是运行一个循环,通过这个来设置面板与cookies关闭。我该怎么做呢?或者这完全是实现我目标的错误方式
Javascript不是我的强项。你很接近,一个简单的for..in就可以了:
var cookies = Cookies.getJSON();
for(var id in cookies) {
$('#'+id).hide(); // hiding the closed panel, for example
}
在循环中,id
是键,值是cookie[id]
下面是一个简单的演示:
var cookies={pnl1:“关闭”,pnl2:“关闭”,pnl4:“蓝色”};
for(cookies中的变量id){
$('#'+id).addClass(cookies[id])//给它一个cookie值的类
}
div{color:green}
.closed{颜色:红色}
.blue{color:blue}
小组1
小组2
小组3
面板4