打印本地存储项目的概述

时间:2014-03-31 12:03:30

标签: javascript html5 local-storage

我试图在我的html页面上打印出所有localstorage项目的精彩概述。我做了以下循环来实现:

for (var i = 0; i < localStorage.length; i++){
    var entry = localStorage.getItem(localStorage.key(i));
    $('body').append('<article rel="'+entry[0]['key']+'"><h2>'+entry[0]['title']+'</h2><img class="entry_img" src="'+entry[0]['image']+'"><p><span class="actions"><img class="delete" src="img/deleteicon.png" /></span>'+entry[0]['content']+'<span class="time">Toegevoegd op:'+entry.[0]['date']+'</span>'+entry.[0]['location']+'</p></article>');
}

localstorage中的每个项目都是一个很好的数组,其中包含信息。它认为此代码应该打印值。但它给了我一堆未定义的。如何正确访问这些值?

记录时的条目示例:

1396267647 => {"title":"Entry 1","image":"http://www.hdwallpapersinn.com/wp-content/uploads/2013/03/landscape_10.jpg","content":"Entry 1","date":"31-03-14","location":"Tilburg","key":1396267647}

2 个答案:

答案 0 :(得分:1)

localStorage是一串字符串键/值对,因此entry将始终是一个字符串。

因此,你可能有类似的东西:

var entry = localStorage.getItem(localStorage.key(i)); // Returns "example"
entry[0] // Returns "e"
entry[0]['key'] // Returns undefined

如果您需要将对象存储在本地存储中,则需要首先使用JSON.stringify等字符串化它们。

从你的编辑:看起来你已经有了一个JSON字符串,所以你需要做的就是解析它:

for (var i = 0; i < localStorage.length; i++){
    var entry = JSON.parse(localStorage.getItem(localStorage.key(i))); // Parse the string value
    $('body').append('<article rel="'+entry[0]['key']+'"><h2>'+entry[0]['title']+'</h2><img class="entry_img" src="'+entry[0]['image']+'"><p><span class="actions"><img class="delete" src="img/deleteicon.png" /></span>'+entry[0]['content']+'<span class="time">Toegevoegd op:'+entry.[0]['date']+'</span>'+entry.[0]['location']+'</p></article>');
}

答案 1 :(得分:0)

嗯,您的代码中存在语法错误,请查看:entry.[0]['date'],它应该是entry[0]['date'](不带点)。

同样的错误是entry.[0]['location'],删除点。