【问题标题】:How do I change a single value inside a localStorage item?如何更改 localStorage 项目中的单个值?
【发布时间】: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.

                }
});

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

非常感谢

【问题讨论】:

    标签: javascript jquery json local-storage


    【解决方案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/

    【讨论】:

    • 不幸的是,两者都不起作用。我也对它们进行了调整,以防任何类似的工作,但又没有任何工作。
    • stackoverflow.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”,这样每次复选框都会增加价值。谢谢
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2016-08-31
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2021-10-28
    相关资源
    最近更新 更多