我有一些localStorage密钥,在开发工具->存储中看起来像这样
panel_1 {"name":"test_name", "item_1":"test_item", "link_1":"test_link"})
...每个面板上都有多个项目和链接,其名称中的数字会增加。我试图遍历每个面板,对于该面板,我想获得第一个项目和链接以显示在网页上,然后不断循环浏览,直到没有更多项目或链接,然后再对下一个面板进行操作。在我尝试此操作时,它说“未定义”。如何获得正确的值?现在我的代码看起来像这样...
var total_keys = localStorage.length;
var panels = [];
var key;
var location = $('#panels .wrapper article:first-child()');
for($i = 0; $i < total_keys; $i++) {
key = localStorage.key($i);
if(key.slice(0, 6) === 'panel_') {
panels.push(key);
};
};
var total_panels = panels.length;
for(var $i = 0; $i < total_panels; $i++) {
var panel = JSON.parse(localStorage.getItem(panels[$i]));
var items = function() {
for(var $x = 1; $x <= 5; $x++) {
var item = 'item_'+$x;
alert(panel.item);
};
};
location.after(items);
};
答案 0 :(得分:2)
我认为您的意思是panel[item]
,而不是panel.item
(意思是panel["items"]
)。它将解释“未定义”值。
最内层的循环应该看起来像
for(var $x = 1; $x <= 5; $x++) {
var item = 'item_'+$x;
alert(panel[item]);
};