Javascript 本地存储阵列
伙计们帮我写代码。其思想是将新输入保存在字符串中,并使用HTML显示它们。每次我添加一个新的,HTML都会显示它,如果我重新加载页面,项目仍然会显示,第一个Javascript 本地存储阵列,javascript,arrays,Javascript,Arrays,伙计们帮我写代码。其思想是将新输入保存在字符串中,并使用HTML显示它们。每次我添加一个新的,HTML都会显示它,如果我重新加载页面,项目仍然会显示,第一个getItem方法仍然有效,如果我再次重新加载,问题就出在这里。重新加载页面并在字符串中插入新元素后,它将显示最新的输入,并从其他会话中删除这些输入 如果我现在插入:“一”、“二”、“三”,我将显示“一、二、三”,如果我重新加载,它仍将显示“一、二、三”,这很好,但在重新加载后,如果我插入“四”,它将只显示“四”,我希望显示“一、二、三、四”
getItem
方法仍然有效,如果我再次重新加载,问题就出在这里。重新加载页面并在字符串中插入新元素后,它将显示最新的输入,并从其他会话中删除这些输入
如果我现在插入:“一”、“二”、“三”,我将显示“一、二、三”,如果我重新加载,它仍将显示“一、二、三”,这很好,但在重新加载后,如果我插入“四”,它将只显示“四”,我希望显示“一、二、三、四”
我怎样才能做到这一点
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<button onclick="reloadd()">Reload</button>
<button onclick="clearF()">Clear</button>
<input id="valoare">
<button id="adauga" onclick="adauga()">+</button>
<button onclick="nrElemente()">ElemNr?</button>
<script>
var cars = [];
var two = "kes";
document.getElementById("result").innerHTML = localStorage.getItem("array1");
function clearF() {
window.localStorage.clear();
location.reload();
}
function adauga() {
var x = document.getElementById('valoare').value;
cars.push(x);
localStorage.setItem("array1", cars);
document.getElementById("result").innerHTML = localStorage.getItem("array1");
}
function reloadd() {
location.reload();
}
function nrElemente() {
alert(localStorage.length);
}
</script>
</body>
</html>
重新加载
清楚的
+
ElemNr?
var cars=[];
var two=“kes”;
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById('valoare')。值;
汽车。推(x);
localStorage.setItem(“array1”,cars);
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}
每次加载页面时,您都会创建一个空数组,当您添加到数组中时,您会存储该数组,但决不会将cars
数组连接到已存储的数据
试着改变
var cars =[];
到
当您去存储汽车时
数组更改为:
localStorage.setItem("array1",JSON.stringify(cars));
您的代码无法工作,因为您没有将阵列存储在任何位置。 要将阵列保存到
localStorage
中,您可以使用:
localStorage.setItem("cars", JSON.stringify(cars));
然后,不要这样做:
var cars = [];
您可以按如下方式加载汽车阵列:
var cars = localStorage.getItem("cars");
cars = (cars) ? JSON.parse(cars) : [];
这是在检查localStorage
对象是否包含名为cars
的数组。现在,如果它这样做,它将解析该字符串并返回存储的cars数组,如果它不这样做,它将把cars数组设置为一个新的空数组
在这里,我已修复并整理了您的代码:
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<button onclick="reloadd()">Reload</button>
<button onclick="clearF()">Clear</button>
<input id="valoare" />
<button id="adauga" onclick="adauga()">+</button>
<button onclick="nrElemente()">ElemNr?</button>
<script type="text/javascript">
var array1 = localStorage.getItem("array1");
array1 = (array1) ? JSON.parse(array1) : [];
var two = "kes";
document.getElementById("result").innerHTML = localStorage.getItem("array1");
function clearF() {
window.localStorage.clear();
location.reload();
}
function adauga() {
var x = document.getElementById("valoare").value;
array1.push(x);
localStorage.setItem("array1", JSON.stringify(array1));
document.getElementById("result").innerHTML = localStorage.getItem("array1");
}
function reloadd() {
location.reload();
}
function nrElemente() {
alert(localStorage.length);
}
</script>
</body>
</html>
重新加载
清楚的
+
ElemNr?
var array1=localStorage.getItem(“array1”);
阵列1=(阵列1)?parse(array1):[];
var two=“kes”;
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById(“valoare”).value;
阵列1.推力(x);
setItem(“array1”,JSON.stringify(array1));
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}
此外,将JavaScript事件和函数放在HTML属性中被认为是不好的做法。通过在脚本元素/JS文件中放置JS的全部(或至少大部分),尽可能多地分离HTML、CSS和JS
祝您好运,万事如意。您的代码存在一些主要问题,这是一个固定版本:
<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>
var cars=[];
试一试{
cars=JSON.parse(localStorage.getItem(“array1”);
}捕获(错误){}
var two=“kes”;
document.getElementById(“结果”).innerHTML=cars;
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById('valoare')。值;
汽车。推(x);
setItem(“array1”,JSON.stringify(cars));
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}
这是一种非常常见的模式…尝试将cars
记录到consoleguys。您能给我一个cod,它符合我第一次想要达到的效果吗?为了保存输入,不要丢失Mooo注释,您应该使用JSON.stringify()
设置localStorage时,也应该使用JSON.stringify()
。localStorage仅存储字符串。如果你正在与之抗争,你可以使用store.js
library这两个更改就可以了。。。您现在在console中没有看到完整的数组吗?我正在使用浏览器查看结果,现在我使用W3的平台,请测试您的代码,因为您的支持可能有用且正确,但在我的代码中没有任何效果,例如..在您说了之后,我更改了localStorage.setItem,并使用您的代码和代码没有任何作用是的,谢谢,它工作了。但是我怎样才能删除方形制动器呢?你没有
<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>