【发布时间】:2020-11-02 03:37:27
【问题描述】:
我正在尝试将选中的列表项保存到一个数组中并保存到 localStorage,如果您按顺序检查第一个项目,它会很好。但是,如果您检查除第一项之外的任何其他项目,例如第二项或第三项,则只有第一项会保存到本地存储中。我需要能够保存单击的任何项目,而不是总是将列表项定位为 [0]。
下面的代码将所有内容保存到数组的位置 [0]。因此,单击第一项将在位置 [0] 中起作用,但单击第二项也会保存位置 [0] 而不是位置 [1]。
const savedChecks;
const myArr = [];
savedChecks = document.querySelector('.saved-list-item').innerHTML;
myArr.push(savedChecks);
localStorage.setItem('checkItems'+ new Date().getTime(), JSON.stringify(myArr);
然后我尝试了这个,但是这段代码给出了相同的结果,仅保存在位置 [0],但由于我添加了 [0],因此预计会这样做,但我认为循环键可能会在位置 [0] 处显示所有内容]:
localStorage.setItem('checkItems'+ new Date().getTime(), JSON.stringify([...myArr][0]);
我通过 localStorage 循环并显示结果如下:
for(let i = 0; i < localStorage.length; i++) {
if(localStorage !== null) {
document.querySelector('#savedList').innerHTML += JSON.parse(localStorage.getItem(localStorage.key(i)));
}
}
【问题讨论】:
-
您已将 savedChecks 和 myArr 都声明为常量。你以后不能初始化它们。