Javascript 如何通过这个包含多个cookie的JSON数组来获取键值对?

Javascript 如何通过这个包含多个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")

我可能完全错了,所以我重视任何意见和建议。。。 我试图通过使用(以前称为jquerycookie)插件在单击功能期间设置cookie,将面板状态保存在自定义UI中

下面是我用来打开/关闭面板的操作,我添加了一个if/else语句来设置或删除cookie

$(".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