我试图在localStorage中保存用户的点击次数,然后当用户回来并点击localStorage时会添加新的点击次数。
这就是我所拥有的:
var storedClicks = localStorage.getItem("clicks");
function count_clicks()
{
var count = parseInt(document.cnt_click.cnt_clicks.value);
count++;
document.cnt_click.cnt_clicks.value = count;
localStorage.setItem("clicks", storedClicks + count);
if(count == 10) {
alert(document.cnt_click.cnt_clicks.value);
}
$('#printHere').html(storedClicks);
}
但所有这一切只是在最后添加数字,所以让我们说这是用户的点击历史记录:
访问1:2点击次数 访问2:6点击次数 访问3:3点击次数
输出将是263次点击,而不是11次点击。我需要更改/做什么,由于某种原因它不会打印点击。
提前致谢!
答案 0 :(得分:1)
替换
var storedClicks = localStorage.getItem("clicks");
localStorage.setItem("clicks", storedClicks + count);
与
var storedClicks = parseInt(localStorage.getItem("clicks"));
var newCount = storedClicks + count;
localStorage.setItem("clicks", newCount);
您将int追加到字符串。 希望这会有所帮助。
答案 1 :(得分:0)
var storedClicks = parseInt(localStorage.getItem("clicks"));
您将字符串添加到整数:
“12”+ 3 =“123”//字符串
答案 2 :(得分:0)
如前所述,您连接了字符串而不是添加数字。 这是javascript新用户常犯的错误。
另见Javascript (+) sign concatenates instead of giving sum of variables进一步阅读。
请看我的例子:
storedClicks++; // this will cast the string to a number
我希望这会让它更加清晰。
答案 3 :(得分:0)
<input type="button" onclick="count_clicks()" />
<div id="sc"></div>
<script>
function count_clicks()
{
var storedClicks = (localStorage.getItem("clicks") == "undefined" || localStorage.getItem("clicks") == null) ? 0 : parseInt(localStorage.getItem("clicks"));
localStorage.setItem("clicks", storedClicks + 1);
$('#sc').html(parseInt(localStorage.getItem("clicks")));
}
</script>
以上是经过测试的代码。