通过HTML5和JavaScript中的localStorage循环 [英] Looping through localStorage in HTML5 and JavaScript
问题描述
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
如果我执行 localStorage.length
它返回 3
,这是正确的。因此,我假设中的
循环可以正常工作。
我在想这样的事情: / p>
for(x in localStorage){
$('body')。append(localStorage [x]);
}
但无济于事。任何想法?
我的另一个想法是类似于
localStorage.setItem(1,'Lorem | Ipsum | Dolor')
var split_list = localStorage.getItem(1).split('|');
其中 for ... in
确实有效。
你可以使用 key
方法。 localStorage.key(index)
返回 index
th键(订单是实现定义的,但在您添加或之前是常量删除键)。
for(var i = 0; i< localStorage.length; i ++){
$ ( '主体')附加(localStorage.getItem(localStorage.key(I)));
$ b 如果顺序很重要,你可以存储一个JSON序列化的数组:
localStorage.setItem(words,JSON.stringify([Lorem,Ipsum,Dolor]));
规范草案声称任何支持结构化克隆可以是一个值。但是,这似乎还没有得到支持。编辑:加载数组,然后存储:
var words = JSON.parse(localStorage.getItem(words));
words.push(hello);
localStorage.setItem(words,JSON.stringify(words));
So, I was thinking I could just loop through localStorage like a normal object as it has a length. How can I loop through this?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
If I do a localStorage.length
it returns 3
which is correct. So I'd assume a for...in
loop would work.
I was thinking something like:
for (x in localStorage){
$('body').append(localStorage[x]);
}
But no avail. Any ideas?
The other idea I had was something like
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
In which the for...in
does work.
解决方案 You can use the key
method. localStorage.key(index)
returns the index
th key (the order is implementation-defined but constant until you add or remove keys).
for (var i = 0; i < localStorage.length; i++){
$('body').append(localStorage.getItem(localStorage.key(i)));
}
If the order matters, you could store a JSON-serialized array:
localStorage.setItem("words", JSON.stringify(["Lorem", "Ipsum", "Dolor"]));
The draft spec claims that any object that supports structured clone can be a value. But this doesn't seem to be supported yet.
EDIT: To load the array, add to it, then store:
var words = JSON.parse(localStorage.getItem("words"));
words.push("hello");
localStorage.setItem("words", JSON.stringify(words));
这篇关于通过HTML5和JavaScript中的localStorage循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!