Javascript 如何更改localStorage项中的单个值?
我正在尝试更改localstorage中的一个值。此项是复选框的状态。我希望,每次选中复选框时,将该复选框的值设置为true或false。我尝试了很多方法,直到我意识到不使用JSON就无法更改值 要添加我使用的值,请执行以下操作: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.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];