如何在localStorage中增加值

时间:2012-07-07 13:31:52

标签: javascript html html5 local-storage

我有一些动态存储在localStorage的值,其增量值如下:localStorage [“Value0”],localStorage [“Value1”],....

当我尝试像这样访问它们时:

JavaScript的:

localStorage["Counter"]=0;
var i = localStorage["Counter"]; 
var d =localStorage["Value"+i];
i = i + 1; // i becomes "01"
var f = localStorage["Value"+i];

i的值是“01”而不是1 ...有没有办法正确增加i的值?

2 个答案:

答案 0 :(得分:15)

LocalStorage只能存储字符串值。您可以使用parseInt将字符串转换为整数:

var new_value =  parseInt(localStorage.getItem('num')) + 1

您还可以使用store.js等库自动为您执行操作。您所要做的就是包括库:

<script src="store.js"></script>

设置新存储空间:

var numbers = new Store("numbers")

把东西放进去:

numbers.set('num', 2)

获取价值并随意做任何事情:

numbers.get('num') + 1 //output: 3

你也可以发疯并使用一些数组:

numbers.set('nums', [1,2,3])

改变其中的内容:

numbers.get('nums')[0] + 3 //output: 4

无需转换类型。您还可以存储对象,布尔值和其他内容。只是不要忘记将内容保存在存储中,因为它不会自动执行此操作。

答案 1 :(得分:2)

要解决获取01的问题,只需将变量转换为数字:

var i = +localStorage.getItem('Counter'); // or +localStorage.Counter;

如果您想要增量密钥名称,也可以使用以下代码(前提是您不删除其间的密钥):

var keyname = 'Value' + localStorage.length;
localstorage.setItem(keyname, value);