javascript - 如何从本地存储中获取数组的值并显示它
问题描述
我试图从本地存储中显示一个数组,但是在我再次点击保存按钮时刷新页面后,本地存储中的先前条目被新条目替换并且无法正常工作。
.js 文件:
let count = 0;
let countStr = []
let saveEl = document.getElementById("save-el")
let countEl = document.getElementById("count-el")
let resetBtn = document.getElementById("reset-btn")
let saveBtn = document.getElementById("save-btn")
let incrementBtn = document.getElementById("increment-btn")
const entriesFromLocalStorage = JSON.parse(localStorage.getItem("entries"))
saveEl.innerHTML = entriesFromLocalStorage
incrementBtn.addEventListener("click" , function(){
count = count + 1 ;
countEl.innerHTML = count;
})
saveBtn.addEventListener("click" , function(){
countStr.push(count)
saveEl.innerHTML = countStr
localStorage.setItem("entries", JSON.stringify(countStr))
count = 0;
countEl.innerHTML = 0;
})
resetBtn.addEventListener("click" , function(){
saveEl.innerHTML = "";
localStorage.clear()
})
HTML 文件:
<h1>People entered:</h1>
<h2 id="count-el">0</h2>
<button id="increment-btn">INCREMENT</button>
<button id="save-btn">SAVE</button>
<div class="entries">
<p class="prev-ent">Previous entries:</p>
<p id="save-el"></p>
</div>
<button id="reset-btn">Reset entries</button>
<script src="index.js"></script>
解决方案
let count = 0;
let countStr = []
let saveEl = document.getElementById("save-el")
let countEl = document.getElementById("count-el")
let resetBtn = document.getElementById("reset-btn")
let saveBtn = document.getElementById("save-btn")
let incrementBtn = document.getElementById("increment-btn")
const entriesFromLocalStorage = JSON.parse(localStorage.getItem("entries") || '[]')
// This is important
countStr = entriesFromLocalStorage;
saveEl.innerHTML = entriesFromLocalStorage
incrementBtn.addEventListener("click", function () {
count = count + 1;
countEl.innerHTML = count;
})
saveBtn.addEventListener("click", function () {
countStr.push(count)
saveEl.innerHTML = countStr
localStorage.setItem("entries", JSON.stringify(countStr))
count = 0;
countEl.innerHTML = 0;
})
resetBtn.addEventListener("click", function () {
saveEl.innerHTML = "";
localStorage.clear()
})
推荐阅读
- bash - 当 awk 中的模式规则不正确时执行的命令,有什么问题?
- haskell - 了解 Haskell 的懒惰
- c++ - 这段代码是否进行了多次实例化以及如何避免它?
- javascript - How to store login information for an api which requires Username - Password for the next session
- javascript - 获取周围坐标
- python - 如何将 PyTorch 张量更改为具有不同尺寸的一半大小和/或两倍大小?
- sql-server - 为维度实现临时表以跟踪更改
- java - MaterialCalendarView decorator overrides selected day color issue
- python - 将句子中的数字转换为python中的单词
- python - 为什么 curl 不能通过 python 工作,但在命令提示符下工作正常?