通过HTML5和JavaScript中的localStorage循环 [英] Looping through localStorage in HTML5 and JavaScript

查看:375
本文介绍了通过HTML5和JavaScript中的localStorage循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我认为我可以像普通对象一样循环访问localStorage,因为它具有一定的长度。我怎样才能遍历这个?

  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 indexth 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆