【发布时间】:2019-07-25 02:51:01
【问题描述】:
我正在尝试将一些数据以 JSON 格式存储在 localStorage 中,就像这样。 (这发生在一个函数中。)
var inkomster = [];
var nyInkomst = {
"datum": datum,
"beskrivning": beskrivning,
"belopp": belopp
};
inkomster.push(nyInkomst);
localStorage.setItem("inkomster", JSON.stringify(inkomster));
稍后应该可以检索数据并将其显示在网页上,所以我在另一个函数中执行此操作:
var retrievedIncomeObject = localStorage.getItem("inkomster");
storedInkomster = JSON.parse(retrievedIncomeObject);
var aktuellManadInkomster = {};
for (var key in storedInkomster) {
if (storedInkomster.hasOwnProperty(key)) {
if(storedInkomster[key].datum.substring(3,5) == manadsnummer){
aktuellManadInkomster[key] = storedInkomster[key];
}
}
}
for (var key2 in aktuellManadInkomster) {
if (aktuellManadInkomster.hasOwnProperty(key2)) {
document.getElementById('statistikDIV').insertAdjacentHTML('afterbegin', aktuellManadInkomster[key2].datum);
}
}
我的数据按我的意愿显示在 statistikDIV 标记中,但仅在函数执行时。 功能完成后,我的数据将从我的网页中消失。
我不明白为什么会这样,但我的猜测是 Javascript 中的对象和范围有些东西我不明白?
【问题讨论】:
-
可能是整个页面正在从服务器重新加载,如果您从
<form>的“提交”按钮调用某些内容,可能会发生这种情况。 -
您知道您的数据作为对象存储在数组中,然后当您提取它时,您正尝试使用
for/in循环迭代数组(而不是数组中的对象)对吧? -
是的,在表单中单击按钮会调用检索数据的函数。所以也许那是我的问题。
-
我知道我在数组中有对象。我发这个问题的时候看了看,但我觉得不会影响问题?
标签: javascript html json object