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