如何使用变量获取localStorage数组项的值?

时间:2019-06-07 12:22:46

标签: javascript jquery local-storage

我有一些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);
};

1 个答案:

答案 0 :(得分:2)

我认为您的意思是panel[item],而不是panel.item(意思是panel["items"])。它将解释“未定义”值。

最内层的循环应该看起来像

for(var $x = 1; $x <= 5; $x++) {
    var item = 'item_'+$x;
    alert(panel[item]);
};