LocalStorage数组

时间:2016-10-01 22:06:49

标签: javascript arrays

伙计们帮我解释这段代码。我们的想法是将新输入保存在字符串中并使用HTML显示它们。每次我添加一个新的HTML显示它,如果我重新加载页面仍然显示项目和第一个struct foo { template<class T> struct bar { }; }; template <class T, class = void> struct has_template_bar : std::false_type { }; template <class T> struct has_template_bar <T, void> : std::true_type { template<template<class...> class tplt_tplt = T::bar> // Invalid default argument struct placebo { }; }; 方法,如果我再次重新加载仍然工作,但这是问题。重新加载页面后,我在字符串中插入一个新元素,然后它将显示lates输入,并将删除其他会话中的元素。

如果我现在插入:&#34;一个&#34;,&#34;两个&#34;,&#34;三个&#34;我将展示&#34;一,二,三&#34;如果我重新加载它仍然会显示&#34;一个,两个,三个&#34;哪个好,但是在重新加载后如果我插入&#34;四个&#34;它只显示&#34;四&#34;我想要展示&#34;一,二,三,四&#34;。

我怎样才能实现这一目标?

getItem

3 个答案:

答案 0 :(得分:2)

您在每个页面加载时创建一个空数组,当您添加到数组时,您存储但不会将cars数组连接到已存储的数据

尝试更改

var cars =[];

var localData = localStorage.getItem("array1");
// if localData not undefined then parse that as cars array, otherwise is empty array
var cars = localData ? JSON.parse(localData) : [];

当您将cars数组更改存储到:

localStorage.setItem("array1",JSON.stringify(cars));

答案 1 :(得分:1)

您的代码无效,因为您没有将阵列存储在任何地方。 要将数组保存到localStorage,您可以使用:

localStorage.setItem("cars", JSON.stringify(cars));

然后不要这样做:

var cars = [];

您可以像这样加载汽车数组:

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

这是做什么的,它正在检查localStorage对象是否包含名为array的{​​{1}}。现在,如果确实如此,它将解析该字符串并返回存储的汽车数组,如果没有,则会将cars数组设置为新的空数组。

在这里,我修复了你的代码:

cars

此外,放置JavaScript事件和放置被认为是不好的做法。 HTML属性中的函数。尝试分离HTML,CSS&amp;通过在脚本元素/ JS文件中放置所有(或至少大部分)JS,尽可能地使用JS。

祝你好运,一切顺利。

答案 2 :(得分:0)

您的代码存在一些主要问题,这是一个固定版本:

<script type="text/javascript">
  var cars = [];
  try {
    cars = JSON.parse(localStorage.getItem("array1"));
  } catch (err) {}

  var two = "kes";
  document.getElementById("result").innerHTML = cars;

  function clearF() {
    window.localStorage.clear();
    location.reload();
  }
  function adauga() {
    var x = document.getElementById('valoare').value;
    cars.push(x);
    localStorage.setItem("array1", JSON.stringify(cars));
    document.getElementById("result").innerHTML = localStorage.getItem("array1");
  }
  function reloadd() {
    location.reload();
  }
  function nrElemente() {
    alert(localStorage.length);
  }
</script>