在 JS localStorage 我可以使用
localStorage.getItem(key);
获取与key
变量中的键对应的条目的值。
如何使用密钥获取条目的 ID(而不是值)?
编辑:对不起,我一定让人们感到困惑。我所说的“键”是数字键 - 0、1、2、3 等,具体取决于已保存的项目数量。然后我想从数字键中找出它存储为的 ID,例如下例中的 foo。
localStorage.setItem('foo', 'bar');
在 JS localStorage 我可以使用
localStorage.getItem(key);
获取与key
变量中的键对应的条目的值。
如何使用密钥获取条目的 ID(而不是值)?
编辑:对不起,我一定让人们感到困惑。我所说的“键”是数字键 - 0、1、2、3 等,具体取决于已保存的项目数量。然后我想从数字键中找出它存储为的 ID,例如下例中的 foo。
localStorage.setItem('foo', 'bar');
LocalStorage 被实现为键值对(例如参见:https ://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage ) - 所以你没有像唯一的自动递增 id 这样的 id在数据库表中。
但是,您可以使用索引访问元素 - 要获取 localStorage 中键的索引,我能找到的唯一方法是遍历每个键,直到找到要搜索的键,如下所示:
var findIndexOfKey = function(searchKey) {
for (var i = 0; i < localStorage.length; i++){
var key = localStorage.key(i);
if(key === searchKey)
return i;
}
return -1;
}
然后,要使用索引检索密钥,您可以执行以下操作:
localStorage.key(myIndex);
要检索该值,您可以这样做:
localStorage.getItem(localStorage.key(myIndex));
...或者这个(相当于localStorage.getItem("myKey")
):
localStorage.getItem(localStorage.key(findIndexOfKey("myKey")));
设置项目时,您应该将其 ID 作为值提供,而当您调用 getItem(key) 时,它应该将其 ID 作为返回值提供:
localStorage.setItem('foo', 'bar');
localStorage.getItem('foo'); // it should return the bar
看看这个例子可能会有所帮助: http: //mathiasbynens.be/notes/localstorage-pattern
答案:
localStorage.key(key);
抱歉,我意识到我对所谓的密钥(我称之为 ID)和我称之为密钥的数字 ID 之间存在混淆......
我不认为这是可能的。你不能做localStorage.setItem(yourkey,value)
吗?我是说
localStorage.setItem(0,value)
localStorage.setItem(1,value)
例如,这在循环中可能很有用。