0

我有以下代码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');
}
}

但不是从1to递增值2。它实际上是把价值放在它旁边:- 11-> 111->1111等等。

我怎么能增加 cookie 的价值。

谢谢

4

2 回答 2

3

它是一个字符串,您需要先转换它:

var totalcart = parseInt(getCookie("totalcart"));
于 2013-10-03T15:26:17.840 回答
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');
}
} 
于 2013-10-03T15:28:25.160 回答