我正在存储一些localStorage项目,如下所示:
var id = $(this).closest('.item').attr('data-id');
var title = $(this).closest('.item').attr('data-title');
var json ={"id":id,"title":title};
localStorage.setItem('clip ' +id, JSON.stringify(json));
给我......
Key ------------------------------ Value
剪辑14014_life-ring ---------- {“id”:“14014_life-ring”,“title”:“生命 戒指“}夹子14015_life-jacket ------- {“id”:“14015_life-jacket”,“title”:“Life Jacket”}
要检索/显示特定值,我现在使用:
for ( var i = 0, len = localStorage.length; i < len; ++i ) {
json = localStorage.getItem( localStorage.key( i ) );
var result = JSON.parse(json);
list.append("<li><input type=\"hidden\" name=\"id[]\" value=\"" + result['id'] + "\"><input type=\"hidden\" name=\"title[]\" value=\"" + result['title'] + "\"></li>”);
//console.log(result);
}
这样可以正常工作,但我还希望将一些其他更简单的项目(非JSON)存储为单独的键/值,例如输入字段值(通过检测键盘事件),即名称,电子邮件地址等。
如何编写 for 循环以便只显示以'clip'开头的键?
此外,我还希望能够只计算以“剪辑”开头的键,目前我只知道如何计算所有 localStorage项目的总量,这会使事情变得混乱其他项目存储...
$('.clip-total').html(localStorage.length);
有办法做到这一点吗?
答案 0 :(得分:1)
function showKeys(onlyClipKeys) {
var totalBeginningWithClip = 0;
for (var i = 0, len = localStorage.length; i < len; i++) {
var key = localStorage.key(i);
json = localStorage.getItem(key);
console.log(key);
var result = JSON.parse(json);
if (onlyClipKeys) {
if (key.indexOf('clip') === 0) {
totalBeginningWithClip++;
list.append("<li>" + result['id'] + " - " + result['title'] + "</li>");
}
} else {
list.append("<li>" + result['id'] + " - " + result['title'] + "</li>");
}
}
return totalBeginningWithClip;
}