【问题标题】:Undefined values in Javascript objectJavascript 对象中未定义的值
【发布时间】:2012-01-24 01:59:16
【问题描述】:

所以我试图将一个对象数组存储到localStorage中,如下:-

编辑:以下是循环调用的函数的一部分。

c = [{"name":nameDOM.value,"add":+addDOM.value,"town":townDOM.value,"post":postalDOM.value,"mob":mobDOM.value}];
cData = cData.concat(c);
localStorage.setItem('cData', cData);

但是,在页面刷新后,当我尝试从对象访问数据时,它显然是未定义的。在刷新之前访问对象中的数据是正常的。

我正在通过以下方式访问数据:-

//Table code omitted.
var text = document.createTextNode(""+cData[i].name+", "+cData[i].add+", "+cData[i].town+", "+cData[i].post+", "+cData[i].mob+"");

我一直在尝试使用 Chromes Javascript 工具来调试问题,以及在各个地方插入警报以监控变量的状态;仍然未定义。

【问题讨论】:

  • 你能在jsfiddle.net中举一个不工作的例子吗
  • 我假设您在实际使用之前正在执行 getItem 对吗?
  • @NadirMuzaffar 是的,这是脚本中首先发生的事情之一。如果它在 localStorage 中不存在,则创建它。问候。

标签: javascript arrays json object local-storage


【解决方案1】:

你已经做了一个oopsies。试试:

c = [{"name":nameDOM.value,"add":+addDOM.value,"town":townDOM.value,"post":postalDOM.value,"mob":mobDOM.value}];
cData = cData.concat(c);
localStorage.setItem('cData', JSON.stringify(cData));

它们的不同之处在于您将对象数组转换为 json 字符串,稍后您的代码可以使用以下方法对其进行解析:

eval(localStorage.getItem('cData'));

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多