如何更改localStorage项目中的单个值?

时间:2011-09-01 00:35:30

标签: javascript jquery json local-storage

我正在尝试更改localstorage中的值。此项目是复选框的状态。我希望,每次选中复选框以将该值设置为该复选框的true或false。我尝试了很多方法,直到我意识到如果不使用JSON就无法更改值。

添加我使用的值:

localStorage.setItem("status-" + i, $status.is(":checked"));

并删除我使用:

var parentId = $this.parent().attr('id');
localStorage.removeItem("'" + parentId + "'");

现在改变我试过的值:

$itemList.delegate("#status-" + i, 'click', function(e) {

                var $this = $(this);
                var parentId = this.parent().attr('id');            

                if ($this.is(":checked")) { 

                    localStorage.setItem("'" + parentId + "'".val("fdgsdagf"));
                    // Note that alert here works.

                }
});

这就是我的本地存储的样子: 我希望有人可以帮助我。我已经做了几天......

非常感谢

2 个答案:

答案 0 :(得分:5)

setItem有两个参数:

localStorage.setItem('status-1', "'" + parentId + "'".val("fdgsdagf"));

或更有可能适用于您的情况:

localStorage.setItem(parentId, "fdgsdagf");

最佳做法:

localStorage.setItem('key', JSON.stringify(value));
JSON.parse(localStorage.getItem('key'));

以下是一个示例:http://jsfiddle.net/F8sF2/

编辑:你小提琴,你需要改变:

var parentId = this.parent().attr('id');    

var parentId = $this.attr('id');    

更新http://jsfiddle.net/CC5Vw/1/

答案 1 :(得分:4)

试试这个

localStorage.setItem(parentId, "fdgsdagf");

localStorage只是JavaScript对象,您可以将它们视为关联数组。所以你可以像这样使用它们。

设定值

localStorage[parentId] = "fdgsdagf";

获得价值

var status = localStorage[parentId];