在JS localStorage中我可以使用
localStorage.getItem(key);
获取与key
变量中的键对应的条目的值。
如何使用密钥获取条目的ID(而不是值)?
编辑:对不起我一定有困惑的人。我所说的“键”是数字键 - 取决于已保存的项目数为0,1,2,3等。然后我想从数字键中找出它存储的ID,例如下面例子中的foo。
localStorage.setItem('foo', 'bar');
答案 0 :(得分:1)
LocalStorage是作为键值对实现的(参见例如:https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage) - 所以你没有像数据库表中唯一的自动递增id那样的id。
但是,您可以使用索引访问元素 - 获取localStorage中键的索引,我能找到的唯一方法是遍历每个键,直到找到您要搜索的键为止,如下所示: / p>
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")));
答案 1 :(得分:0)
设置项目时,你应该将它的ID作为值,而当你调用getItem(key)时,它应该将它的ID作为返回ex:
localStorage.setItem('foo', 'bar');
localStorage.getItem('foo'); // it should return the bar
看一下它可能有用的示例:http://mathiasbynens.be/notes/localstorage-pattern
答案 2 :(得分:0)
答案:
localStorage.key(key);
很抱歉,我意识到我对实际称为密钥(我称之为ID)和它的数字ID(我称之为密钥)感到困惑。
答案 3 :(得分:0)
我认为不可能。你不能只做localStorage.setItem(yourkey,value)
吗?我的意思是
localStorage.setItem(0,value)
localStorage.setItem(1,value)
例如,这在循环中可能很有用。