使用变量更新/添加localStorage

时间:2014-01-08 12:46:48

标签: javascript jquery html5

我试图在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次点击。我需要更改/做什么,由于某种原因它不会打印点击。

提前致谢!

4 个答案:

答案 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

http://jsfiddle.net/LdjE6/6/

我希望这会让它更加清晰。

答案 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>

以上是经过测试的代码。