我正在尝试更改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.
}
});
这就是我的本地存储的样子: 我希望有人可以帮助我。我已经做了几天......
非常感谢
答案 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');
答案 1 :(得分:4)
试试这个
localStorage.setItem(parentId, "fdgsdagf");
localStorage
只是JavaScript对象,您可以将它们视为关联数组。所以你可以像这样使用它们。
设定值
localStorage[parentId] = "fdgsdagf";
获得价值
var status = localStorage[parentId];