gpt4 book ai didi

javascript - 如果存在 Cookie,则隐藏表行

转载 作者:行者123 更新时间:2023-11-28 10:32:55 25 4
gpt4 key购买 nike

基于我之前的问题herehere ,我发现可以用javascript设置cookie。我想将它与 jquery 结合起来,为切换的表行设置 cookie 状态。我想在重新加载时隐藏隐藏的行。

这是我迄今为止所取得的成就:

// Load cookies if any   
if(readCookie('togState')) {
$('table#toggle tr.' + readCookie('togState')).hide();
}

$(function() {
$('table#toggle tr.container').click(function() {
var idTog = $(this).attr('id');
$(this).toggleClass('off').nextAll('.' + idTog).toggle();
setCookie('togState', idTog, 30);
alert('Cookies: ' + readCookie('togState'));
});

});

父级:<tr id="parent-1" class="container">

以下 child :<tr class="contained parent-1">

正如您所看到的,cookie 已被读取,但在浏览器刷新时并未设置。我做错了什么?

我想要的是隐藏任何切换的行(其类等于其父容器 ID),如果单击父容器,则设置 cookie。

任何帮助将不胜感激。谢谢。

我用于快速检查的源cookie:

function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

function eraseCookie(name) {
setCookie(name,"",-1);
}

更新:

我也尝试了每个功能,但没有成功:

$('table#toggle tr.' + readCookie('togState')).each(function() {
$(this).hide();
});

更新2:

如果我将检查放在 jquery 中(我使用 hide()),它可以工作,但仅适用于单个 cookie。所以现在实际的问题是如何为更多的父行保留更多的cookie?

最佳答案

如果您使用 this answer 中的 setCookie() 函数,您将 cookie 的生命周期设置为 30 秒。这可能不足以满足您的要求,您可能应该考虑稍微增加它。 :-)

编辑回复:您的问题编辑 - 如果您尝试设置多个 cookie,则以下行会出现问题:

document.cookie = name+"="+value+expires+"; path=/";

在这里,每次调用 setCookie() 时都会覆盖 cookie 属性。如果您想设置多个 cookie,则需要在每次调用 setCookie()

时在字符串前面/附加一个新的名称/值对

关于javascript - 如果存在 Cookie,则隐藏表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com