多个div+;javascript+;曲奇

多个div+;javascript+;曲奇,javascript,jquery,show-hide,setcookie,Javascript,Jquery,Show Hide,Setcookie,我试图通过设置cookie使showHide在页面加载时持久化。我的问题是我有不止一个div要解释。如何做到这一点?我已尝试使用or运算符,即: var closed = $(".Div1").is(":hidden") || $(".Div2").is(":hidden"); if (closed) $(".Div1").show() || $(".Div2").show(); else $(".Div1").hi

我试图通过设置cookie使showHide在页面加载时持久化。我的问题是我有不止一个div要解释。如何做到这一点?我已尝试使用or运算符,即:

var closed = $(".Div1").is(":hidden") || $(".Div2").is(":hidden");
        if (closed)
            $(".Div1").show() || $(".Div2").show();
        else
            $(".Div1").hide(); || $(".Div2").hide();
    ...etc...
……但是运气不好。下面是我如何使它与单个div(Div1)一起工作的:


因为您有多个div,所以需要遍历每个div,检查哪些div是隐藏的,然后显示它们。另外,您需要唯一地保存和提取每个cookie,所以我使用了每个div的索引并将其附加到cookie名称中

Div是一个应用于Div元素的类

 $(".showHide").on("click", function () {
          $(".Div1").each(function(i,op)
          {
              var closed  = $(this).is(":hidden");
              if(closed)
                 $(this).show();
              else 
                 $(this).hide();

             setCookie("open_" + i, closed, 365);
          });
    });

    $(".Div1").each(function(i,op)
   {
    var openToggle = getCookie("open_" + i);    
if (openToggle=="true") {        
    $(this).show();
}
else {        
    $(this).hide();
}
});
更新:如果div1类应用于其他元素

 $(".showHide").on("click", function () {
          $("div[class='Div1']").each(function(i,op)
          {
              var closed  = $(this).is(":hidden");
              if(closed)
                 $(this).show();
              else 
                 $(this).hide();

         setCookie("open_" + i, closed, 365);
      });
});

$("div[class='Div1']").each(function(i,op)
   {
    var openToggle = getCookie("open_" + i);    
if (openToggle=="true") {        
    $(this).show();
}
else {        
    $(this).hide();
}
});

嗯,还是不走运。谢谢你的回复。忘记为getCookie添加下划线字符。修复了代码。如果class=“Div1”应用于
,是否有关系?我这样问是因为最初的点击显示了页面上的每个Div1。我一次只想要一个。再次感谢。我建议让div1类仅适用于div元素,但是如果您希望将其用于其他元素,则需要只针对div类div1。我已经更新了那部分代码。
 $(".showHide").on("click", function () {
          $(".Div1").each(function(i,op)
          {
              var closed  = $(this).is(":hidden");
              if(closed)
                 $(this).show();
              else 
                 $(this).hide();

             setCookie("open_" + i, closed, 365);
          });
    });

    $(".Div1").each(function(i,op)
   {
    var openToggle = getCookie("open_" + i);    
if (openToggle=="true") {        
    $(this).show();
}
else {        
    $(this).hide();
}
});
 $(".showHide").on("click", function () {
          $("div[class='Div1']").each(function(i,op)
          {
              var closed  = $(this).is(":hidden");
              if(closed)
                 $(this).show();
              else 
                 $(this).hide();

         setCookie("open_" + i, closed, 365);
      });
});

$("div[class='Div1']").each(function(i,op)
   {
    var openToggle = getCookie("open_" + i);    
if (openToggle=="true") {        
    $(this).show();
}
else {        
    $(this).hide();
}
});