gpt4 book ai didi

javascript - 为什么我的 cookie 没有被设置?

转载 作者:行者123 更新时间:2023-11-28 16:39:14 25 4
gpt4 key购买 nike

我正在学习,如有明显错误,请多多指教。

/*set 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);
}


$(window).load(function() {
//check for the cookie
var language = readCookie('language');
//if null show red
if (language!=null)
{
$('.blue').hide();
alert('No cookie set');
}
//if null show red
else if (language!=red)
{
$('.blue').hide();
alert('The cookie is red');
}
//if blue show blue
else {
$('.red').hide();
alert('The cookie is set to blue');
}


$('#blue').click(function() {
$('.red').hide();
$('.blue').show();
setCookie('language','blue', 30);
alert('The cookie is set to blue');
});

$('#red').click(function() {
$('.red').show();
$('.blue').hide();
setCookie('language','red', 30);
alert('The cookie is set to red');
});
});

谢谢。

最佳答案

学习使用Firebug是最好的建议。另一个有用的工具是着色编辑器。即使如此,也提供了一些此类帮助。注意这一行:

    else if (language!=red)

“red”没有被着色为字符串,因此它通过不突出而脱颖而出。原始代码中是否定义了名为“red”的变量?如果不是,则会将语言与未定义进行比较。

此外,请考虑此语句后面的几行:

    else if (language!='red') {
$('.blue').hide();
alert('The cookie is red');

您刚刚测试了 cookie 值不是红色的,但您警告说它是红色的。您在第一次测试中犯了类似的错误:

    if (language!=null) {
$('.blue').hide();
alert('No cookie set');

language 不为空,但您显示的消息表明它是空的。

这与您的问题无关,但您可以进行一些简化。首先,jQuery 定义了 trim String 上的方法删除前导和尾随空格。请在 readCookie 中使用 if ,而不是在 while (c.charAt(0)==' ') 循环中。

另一个改进是,当前通过使用 if block 序列来选择要显示的元素的技术不能很好地扩展。您的作业是使用字符串操作等来更好地处理任意数量的元素,然后添加“.green”、“.yellow”、“.magenta”和“.cyan”元素。您可能需要将默认行为从显示所有 .color 元素更改为隐藏它们。使用对象作为关联数组也可能会有所帮助。

关于javascript - 为什么我的 cookie 没有被设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1931230/

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