多个div+;javascript+;曲奇
我试图通过设置cookie使showHide在页面加载时持久化。我的问题是我有不止一个div要解释。如何做到这一点?我已尝试使用or运算符,即:多个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
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();
}
});