Cookie无法正常工作并返回undefined

时间:2011-12-19 18:03:50

标签: javascript jquery cookies

我正在使用以下代码进行设置并获取Cookie:

$.setCookie = function (c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
};
$.getCookie = function (c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
};

然后我只为click按钮创建了两个测试2函数:

$('#quick-true').click(function(){
$.setCookie('quick-status', true, 365);
var get = $.getCookie('quick-status');
alert('Status: '+get);
});
$('#quick-false').click(function(){
$.setCookie('quick-status', false, 365);
var get = $.getCookie('quick-status');
alert('Status: '+get)
});

但是,当点击#quick-true#quick-false时,提醒会显示Status: undefined
任何人都可以帮助我为什么会这样。我对Cookies有很多了解,而且我和他们一起工作了很多,但这次我迷失了。

1 个答案:

答案 0 :(得分:0)

您的代码对我来说很好,但为了确保我创建了一个测试HERE,它正在按预期工作。 除了您发布的导致问题的代码之外,可能还有其他的东西,正是很难说清楚的。