在localStorage中按键获取ID

时间:2012-09-05 05:55:45

标签: javascript jquery local-storage

在JS localStorage中我可以使用

localStorage.getItem(key);

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

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


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

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

4 个答案:

答案 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)

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