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

Javascript 如何更改localStorage项中的单个值?,javascript,jquery,json,local-storage,Javascript,Jquery,Json,Local Storage,我正在尝试更改localstorage中的一个值。此项是复选框的状态。我希望,每次选中复选框时,将该复选框的值设置为true或false。我尝试了很多方法,直到我意识到不使用JSON就无法更改值 要添加我使用的值,请执行以下操作: localStorage.setItem("status-" + i, $status.is(":checked")); 要删除,我使用: var parentId = $this.parent().attr('id'); localStorage.removeIt

我正在尝试更改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.

                }
});
这就是我的本地存储的外观: 我希望有人能帮助我。我已经做了几天了


非常感谢

设置项
采用两个参数:

localStorage.setItem('status-1', "'" + parentId + "'".val("fdgsdagf"));
或者更可能适用于您的情况:

localStorage.setItem(parentId, "fdgsdagf");
最佳做法:

localStorage.setItem('key', JSON.stringify(value));
JSON.parse(localStorage.getItem('key'));
下面是一个例子:

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

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

更新的

试试这个

localStorage.setItem(parentId, "fdgsdagf");
localStorage
是JavaScript对象,您可以将它们视为关联数组。所以你可以像这样使用它们

定值

localStorage[parentId] = "fdgsdagf";
获得价值

var status = localStorage[parentId];

不幸的是,两者都不起作用。我也调整了它们,以防任何类似的工作,但再次没有任何工作。在这篇文章中,一个家伙说,没有JSON,您无法更改项目的值。但他做这件事的方式有点让人困惑。谢谢,我想你会想要
$this.attr('id')
,而不是父对象,但它不会改变状态的值。检查:使用firebug。这并不能真正回答OP提出的问题。我想我需要使用“I”,因为我有“var I=Number(localStorage.getItem('todo-counter'))+1”,所以每次复选框都会增加值。非常感谢。
var status = localStorage[parentId];