【问题标题】:JS: function pushing value into parametred localStorage.address?JS:函数将值推入参数 localStorage.address?
【发布时间】:2013-07-01 00:41:32
【问题描述】:

我尝试创建一个if ... then... 函数来将对象推送到希望的localStorage。但是,将对象推送到所需的 localStorage 的简单功能失败了。在 localStorage.mydata 中,参数 mydata 被视为变量。

JS 之类的:

function pushToLocalStorage(mydata, num) {
   localStorage.mydata = num ;
}
pushToLocalStorage("data", 42);
pushToLocalStorage("data2.name", "Hello!");

但我确实希望将我的价值观推送到 localStorage.datalocalStorage.data2.name

如何使函数将输入推送到指定的 localStorage.specificName ?

【问题讨论】:

    标签: javascript jquery local-storage


    【解决方案1】:

    用 localStorage[mydata] 替换 localStorage.mydata 即可:

    function pushToLocalStorage(mydata, num) {
        localStorage[mydata] = num ;
    }
    pushToLocalStorage("data", 42)
    

    http://jsfiddle.net/wazHr/1/

    【讨论】:

    • @Hugoplz,因为您正在动态更改键控属性,所以您应该使用obj[prop] 语法而不是obj.prop
    • @alias:对于新的 JS 用户来说有点复杂,但是谢谢!
    • localStorage.mydata 将访问名为 myData 的属性!如果使用localStorage[xxx],在这种情况下,它返回以表达式xxx的结果命名的属性,因此localStorage[myData]是正确的。
    【解决方案2】:

    你可以这样做:

    function pushToLocalStorage(mydata, num) {
        localStorage.setItem(mydata, num);
    }
    

    localStorage.getItem(mydata); 检索

    演示:http://jsfiddle.net/wazHr/3/

    另外,如果您还没有,请务必检查浏览器是否支持 localStorage。

    【讨论】:

    • 它对你有用吗?优雅的代码,但不适用于我。 jsfiddle.net/wazHr/2
    • @Hugolpz -- 忘记添加.setItem
    • 谢谢!我记住这个 (.setItem/.getItem) 以供以后使用。可能很方便!
    • 这是HTML5 web storage specification 的一部分。如果无法设置值,该方法会抛出异常,有助于调试。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2020-08-24
    • 2021-12-09
    • 2021-10-17
    • 2021-06-01
    相关资源
    最近更新 更多