【发布时间】:2015-03-02 22:10:58
【问题描述】:
我正在存储一些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));
给我……
键 ------------------ 值
剪辑 14014_life-ring ---------- {"id":"14014_life-ring","title":"生活 环"} 夹 14015_life-jacket -------- {"id":"14015_life-jacket","title":"救生衣"}
为了检索/显示特定值,我正在使用:
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)存储为单独的键/值,例如输入字段值(通过检测 keyup 事件),即姓名、电子邮件地址等。
如何编写上面的 for 循环,以便只显示以“clip”开头的键?
另外,我还希望能够只计算以“clip”开头的键,目前我只知道如何计算 all localStorage 项目的总数,这会在其他项目被存储...
$('.clip-total').html(localStorage.length);
有没有办法做到这一点?
【问题讨论】:
-
if(result.indexOf('clip') === 0) { totalBeginningWithClip++; continue; }