2013-03-08 82 views
2

我有这样的基本功能:的localStorage的显示内容到DIV

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

的问题是,pid价值终将改变,我不希望覆盖key的内容。

如何才能继续堆叠每个Div内容localStorage为我节省的内容?

+0

什么是PID的目的是什么?可能没有加入字符串和寻找匹配键的方式更清晰。 – bgusach 2013-03-08 15:54:51

回答

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>')); 
}); 
+0

谢谢您的及时答复,但我怎样才能把这与我的功能一起工作?我对JavaScript很陌生 – user2109326 2013-03-08 15:59:29

+0

我会尝试这段代码。非常感谢 – user2109326 2013-03-08 16:00:52

+0

Factastic。这是真正的帮助 – user2109326 2013-03-08 16:15:00

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);   
+0

你可能应该[阅读此](https://developer.mozilla.org/en-US/docs/DOM/Storage)。 – 2013-03-08 16:12:58

+0

看来我还没有接近!你永远不会停止学习新的东西=) – bgusach 2013-03-08 16:19:30