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

jQu*_*ast 4 javascript jquery json local-storage

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

要添加我使用的值:

localStorage.setItem("status-" + i, $status.is(":checked"));
Run Code Online (Sandbox Code Playgroud)

并删除我使用:

var parentId = $this.parent().attr('id');
localStorage.removeItem("'" + parentId + "'");
Run Code Online (Sandbox Code Playgroud)

现在改变我试过的值:

$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.

                }
});
Run Code Online (Sandbox Code Playgroud)

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

非常感谢

Joe*_*Joe 5

setItem 有两个参数:

localStorage.setItem('status-1', "'" + parentId + "'".val("fdgsdagf"));
Run Code Online (Sandbox Code Playgroud)

或者更有可能是你的情况:

localStorage.setItem(parentId, "fdgsdagf");
Run Code Online (Sandbox Code Playgroud)

最佳实践:

localStorage.setItem('key', JSON.stringify(value));
JSON.parse(localStorage.getItem('key'));
Run Code Online (Sandbox Code Playgroud)

这是一个例子:http://jsfiddle.net/F8sF2/

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

var parentId = this.parent().attr('id');    
Run Code Online (Sandbox Code Playgroud)

var parentId = $this.attr('id');    
Run Code Online (Sandbox Code Playgroud)

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