【问题标题】:Text inserted to HTML disappears when function is done功能完成后插入 HTML 的文本消失
【发布时间】: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


【解决方案1】:

我在按钮标签中添加了 type="button"。这解决了问题。谢谢!

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多