伙计们帮我解释这段代码。我们的想法是将新输入保存在字符串中并使用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
答案 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>