0

在 JS localStorage 我可以使用

localStorage.getItem(key);

获取与key变量中的键对应的条目的值。

如何使用密钥获取条目的 ID(而不是值)?


编辑:对不起,我一定让人们感到困惑。我所说的“键”是数字键 - 0、1、2、3 等,具体取决于已保存的项目数量。然后我想从数字键中找出它存储为的 ID,例如下例中的 foo。

localStorage.setItem('foo', 'bar');

4

4 回答 4

1

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")));
于 2012-09-05T06:04:36.690 回答
0

设置项目时,您应该将其 ID 作为值提供,而当您调用 getItem(key) 时,它应该将其 ID 作为返回值提供:

localStorage.setItem('foo', 'bar');
localStorage.getItem('foo');  // it should return the bar

看看这个例子可能会有所帮助: http: //mathiasbynens.be/notes/localstorage-pattern

于 2012-09-05T06:02:50.830 回答
0

答案:

localStorage.key(key);

抱歉,我意识到我对所谓的密钥(我称之为 ID)和我称之为密钥的数字 ID 之间存在混淆......

于 2012-09-05T06:14:58.483 回答
0

我不认为这是可能的。你不能做localStorage.setItem(yourkey,value)吗?我是说

localStorage.setItem(0,value)  
localStorage.setItem(1,value)

例如,这在循环中可能很有用。

于 2012-09-05T06:19:35.827 回答