Javascript 将本地存储的内容显示到div中

Javascript 将本地存储的内容显示到div中,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,我有这个基本功能: pid = 1; $(function() { if (localStorage["key"+pid] != null) { var contentsOfDiv = localStorage.getItem("key"+pid); $("#Div").html(contentsOfdDiv); } }); 问题是pid值最终会改变,我不想覆盖键的内容 如何继续堆叠Div为我保存的localStorage内容?您可以像在任何对象

我有这个基本功能:

pid = 1;
$(function() {
    if (localStorage["key"+pid] != null) {
        var contentsOfDiv = localStorage.getItem("key"+pid);
        $("#Div").html(contentsOfdDiv);
    }
});
问题是
pid
值最终会改变,我不想覆盖
键的内容


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

您可以像在任何对象属性上一样迭代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>'));
});
$(函数(){
var行=[];
for(本地存储中的var键){
如果(/^key/.test(key)){//键是否以“key”开头
line.push(key.slice(3)+'='+localStorage[key]);
}
}
$(“#Div”).html(lines.join(“
”); });
如果我理解得很好,您希望使用pid在对象上循环

这样做并避免链内原型问题的最佳方法如下:

(我认为在这种情况下,使用数组比使用对象更好)

var localStorage=['aaaa','bbbbbbb','cccc','dddd'];//别忘了用var声明
var html_string='';
$.each(本地存储、函数(索引、值){
html_string+=value+'
'; }); $('#my_div').html(html_字符串);
pid的用途是什么?也许有一种更简洁的方法,不需要连接字符串和寻找匹配的键。谢谢您的快速回答,但是我如何将其与我的函数一起使用呢?我对JavaScriptFactic非常陌生。这真的很有用只是一个古怪的细节。。。使用
key.substr(0,3)==“key”
而不是
/^key/.test(key)
?@ikaros45是的,但我认为这不值得改变。而且。。。我喜欢正则表达式:)在我的例子中,速度快了33%。想象一下,在这个例行程序中,你可以节省多少纳秒,呵呵。你可能应该这样做。看来我甚至都没有接近!你永远不会停止学习新事物
    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);