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

Posted

技术标签:

【中文标题】如何更改 localStorage 项目中的单个值?【英文标题】:How do I change a single value inside a localStorage item? 【发布时间】:2011-11-08 01:34:11 【问题描述】:

我正在尝试更改本地存储中的值。此项目是复选框的状态。我希望,每次选中一个复选框以将该复选框的值设置为 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.

                
);

这是我的本地存储的样子: 我希望有人能帮助我。这几天我一直在努力...

非常感谢

【问题讨论】:

【参考方案1】:

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/

【讨论】:

不幸的是,两者都不起作用。我也对它们进行了调整,以防任何类似的工作,但又没有任何工作。 ***.com/questions/7207337/… 在这篇文章中,有人说没有 JSON 就无法更改项目的值。但他这样做的方式有点令人困惑。谢谢 我想你会想要$this.attr('id'),而不是父母 但它不会改变状态的值。检查:fiddle.jshell.net/CC5Vw/1/show with firebug。 这并不能真正回答 OP 提出的问题。【参考方案2】:

试试这个

localStorage.setItem(parentId, "fdgsdagf");

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

设定值

localStorage[parentId] = "fdgsdagf";

获取价值

var status = localStorage[parentId];

【讨论】:

我想我需要使用'i',因为我有“var i = Number(localStorage.getItem('todo-counter')) + 1”,这样每次复选框都会增加价值。谢谢

以上是关于如何更改 localStorage 项目中的单个值?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 data.frame 中的单个值?

如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?

如何在 Vue js 中使 localStorage 中的数据具有反应性

如何清除localStorage缓存中的value值

为啥读取 localStorage 值需要刷新页面才能显示由 jQuery 切换的 CSS 更改?

AngularJs 应用程序无法监听来自另一个窗口的 localStorage 更改