我试图在我的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}
答案 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']
,删除点。