【问题标题】:Localstorage can't generate data JavascriptLocalstorage 无法生成数据 Javascript
【发布时间】:2017-08-20 02:33:40
【问题描述】:

我想使用来自input 的一些信息生成新的div 元素,但它无法正常工作。我在保存和接收来自localstorage 的数据时遇到了一个大问题。我花了两天时间研究这个问题。你能告诉我问题出在哪里吗?

小提琴:https://jsfiddle.net/v5r653nd/1/

var nameaaaa = document.getElementById("nameOfbook");
var author = document.getElementById("nameOfauthor");
var year = document.getElementById("year");

function makeJob() {
  testObjects.push({
        name: nameaaaa.value,
        author: author.value,
        year: year.value
    })

localStorage.setItem('testObjects', JSON.stringify(testObjects));

【问题讨论】:

  • 错误是显示未定义的书名吗?或者你在说什么错误
  • 如果是这样,您将能够通过在makeJob中单步执行您的代码来找到修复程序
  • @Frankusky 不,它是将数据添加到本地存储,然后将所需的文本添加到正文中的 div 元素。但是当我尝试使用输入创建新信息时,localstorage 被重写了......页面上的相同 div(带有来自 localstorage 的信息) - 当我期望带有新信息的新 div 时,从输入中接收新信息。
  • @Nazariy 我还是不明白。在您的 jsfiddle 中,它会正确添加信息,并使用新信息正确创建一个新 div
  • 哦,是刷新后吗?

标签: javascript html arrays json local-storage


【解决方案1】:

如果我对问题的理解正确,您将覆盖本地存储,因为在脚本开始时您声明 testObject 是一个空数组,然后您对其进行处理并用该值替换您的本地存储。

所以你应该首先检索 localstorage 值并将其存储在该变量中:

var testObjects = localStorage.getItem("testObjects") ? JSON.parse(localStorage.getItem("testObjects")) : [];

JSFiddler Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2014-01-15
    • 2014-08-07
    • 2017-12-17
    相关资源
    最近更新 更多