2

我有这个基本功能:

pid = 1;
$(function() {
    if (localStorage["key"+pid] != null) {
        var contentsOfDiv = localStorage.getItem("key"+pid);
        $("#Div").html(contentsOfdDiv);
    }
});

问题是该pid值最终会改变,我不想覆盖key.

如何继续堆叠为我保存的所有Div内容?localStorage

4

2 回答 2

5

您可以像在任何对象属性上一样迭代 localStorage 条目:

for (var key in localStorage) {
    console.log(key, localStorage[key]);
}

所以你的代码可能是:

$(function() {
    var lines = [];
    for (var key in localStorage) {
        if (/^key/.test(key)) { // does the key start with "key"
           lines.push(key.slice(3) + ' = ' + localStorage[key]);
        }
    }
    $("#Div").html(lines.join('<br>'));
});
于 2013-03-08T15:47:14.703 回答
0

如果我理解得很好,您想使用 pid 来循环对象。

执行此操作并避免链中原型问题的最佳方法如下:

(我认为对于这种情况,您最好使用数组而不是对象)

http://jsfiddle.net/hqkD9/

    var localStorage = ['aaaa', 'bbbbb', 'cccc', 'dddd'];   // don't forget to declare with var

    var html_string = '';
    $.each(localStorage, function(index, value) {
        html_string += value + '<br>';
    });

    $('#my_div').html(html_string);        
于 2013-03-08T16:08:58.393 回答