我有以下代码Reading
和Setting 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值。
由于
答案 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');
}
}