通过Javascript将Cookie值增加1

时间:2013-10-03 15:22:47

标签: javascript cookies

我有以下代码ReadingSetting Cookie来自w3schhols.com。我在增加Cookie的值时遇到问题

function isNumber (o) {
    return ! isNaN (o-0) && o !== null && o.replace(/^\s\s*/, '') !== "" && o !== false;
}
function setCookie(c_name,value,exdays)
{
    var date=new Date();
    date.setTime( date.getTime() + (exdays*24*60*60*1000) );
    expires='; expires=' + date.toGMTString();
    document.cookie=c_name + "=" + value + expires + '; path=/';
}
function getCookie(c_name)
{
    var c_value = document.cookie;
    var c_start = c_value.indexOf(" " + c_name + "=");
    if (c_start == -1) {
        c_start = c_value.indexOf(c_name + "=");
    }
    if (c_start == -1) {
        c_value = null;
    } else {
        c_start = c_value.indexOf("=", c_start) + 1;
        var c_end = c_value.indexOf(";", c_start);
        if (c_end == -1) {
            c_end = c_value.length;
        }
        c_value = unescape(c_value.substring(c_start,c_end));
    }
    return c_value;
}

我正在使用以下函数来增加: -

function addToCart() {
var totalcart = getCookie("totalcart");
if (totalcart != null && totalcart != "" && isNumber(totalcart)) {
    totalcart += 1;
    setCookie('totalcart',totalcart, 2);
    jQuery('#totalcart').text(totalcart);
} else {
    setCookie('totalcart', 1 , 2);
    jQuery('#totalcart').text('1');
}
}

但不是将值从1增加到2。它实际上是在它旁边施展价值: - 11 - > 111 - > 1111等等。

我怎样才能增加cookie值。

由于

2 个答案:

答案 0 :(得分:2)

它是一个字符串,你需要先抛出它:

var totalcart = parseInt(getCookie("totalcart"));

答案 1 :(得分:2)

因为当你从cookie中检索它时它是一个字符串,这意味着当你将1添加到结尾时它就像一个字符串。您需要使用parseInt函数将您的字符串转换为int,因此您可以运行您的等式。

function addToCart() {
var totalcart = parseInt(getCookie("totalcart"));
if (totalcart != null && totalcart != "" && isNumber(totalcart)) {
    totalcart += 1;
    setCookie('totalcart',totalcart, 2);
    jQuery('#totalcart').text(totalcart);
} else {
    setCookie('totalcart', 1 , 2);
    jQuery('#totalcart').text('1');
}
}