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');
}
}

ただし、値を から にインクリメントする代わり12。それは実際にその横に価値を置いています:- 11-> 111->1111などなど。

どうすればクッキーの値を増やすことができますか.

ありがとう

4

2 に答える 2

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 に答える