我正在开发一个基本的浏览器游戏引擎,它使用本地存储来存储变量。
在一个html页面上,我有:
localStorage.setItem("money", 49);
然后在另一个页面上,我希望能够为该值添加1。为此,我在html页面上有以下代码:
onClick="varPlus1('money')"
这是在javascript文件中:
function varPlus1(name)
{
var val=localStorage.getItem(name);
val += 1;
localStorage.setItem(name, val);
}
我希望这会将变量'money'的值增加到50,但似乎并没有改变它。我做错了什么?
答案 0 :(得分:2)
LocalStorage将值存储为
string
,+= 1
将连接字符串而不是执行add
操作。
+
(一元加)会将string
投放到Number
试试这个:
localStorage.setItem("money", 49);
function varPlus1(name) {
var val = +localStorage.getItem(name);
val += 1;
localStorage.setItem(name, val);
}
varPlus1('money')

答案 1 :(得分:0)
使用以下代码进行测试和工作: - 的 HTML 强>
<button id="btnSave">sadsadsad</button>
<强> JQuery的强>
$(document).ready(function() {
localStorage.setItem("money", 49);
$("#btnSave").click(
function () {
varPlus1('money');
}
);
});
function varPlus1(name)
{
var val=localStorage.getItem(name);
val =parseInt(val)+ 1;
localStorage.setItem(name, val);
alert (localStorage.getItem(name));
}