提问人:Muhammad Umer 提问时间:8/15/2023 最后编辑:Muhammad Umer 更新时间:8/15/2023 访问量:28
通过本地存储推送数据时从数据数组获取 NULL
getting null from data array when pushing data through local storage
问:
我正在制作一个待办事项列表,其中我正在从本地存储中获取数据。 问题是,当我在数据数组中存储数据时,数据存储的值=“null”
我希望span值存储在数据数组中,但它没有发生; 并显示在待办事项列表中 请帮帮我
法典:
const item = document.querySelector('#item');
const toDoList = document.querySelector('ul');
item.addEventListener(
"keyup",
function(event){
if(event.key == "Enter"){
addToDo(this.value)
this.value=""
}
})
const addToDo = (item="")=>{
var liItem = document.createElement('li')
liItem.innerHTML=`
<span>${item}</span>
<i class="fas fa-times"></i>
`
toDoList.appendChild(liItem)
liItem.addEventListener('click',function(){
liItem.classList.toggle('dark');
})
liItem.querySelector('i').addEventListener('click', function(){
liItem.remove();
})
save();
}
save();
function save(){
var liItems = document.querySelectorAll('li span');
data= [];
liItems.forEach((liItem)=>{
data.push(liItem.value)
})
localStorage.setItem("liItem",JSON.stringify(data));
console.log(data);
}
(
function(){
const lsItem = JSON.parse(localStorage.getItem("liItem"));
lsItem.forEach((lsItem)=>{
addToDo(lsItem)
})
}
)()
答:
0赞
Justinas
8/15/2023
#1
您正在获取所有元素li span
var liItems = document.querySelectorAll('li span');
比你循环这些元素并试图摆脱它(),但元素没有属性,你也没有添加数据API属性。.value
data.push(liItem.value)
<span>
value
data-value
您需要改用:.innerHTML
function save() {
var liItems = document.querySelectorAll('li span');
data = [];
liItems.forEach((liItem) => {
data.push(liItem.innerHTML);
});
localStorage.setItem('liItem',JSON.stringify(data));
console.log(data);
}
评论
0赞
Muhammad Umer
8/16/2023
SR 你能用我的 js 代码提供更多帮助吗?我已经修好了
0赞
Muhammad Umer
8/16/2023
感谢您的宝贵时间。成功了
0赞
Muhammad Umer
8/16/2023
SR问题是你知道吗,当我们单击Li项目时,它会得到dark类,但我不知道如何存储类和代码
评论
'li span'
span.value
value
映射
要存储的......并将其存储为“项目 s”,例如......toDoList.querySelectorAll('li > span');
document.querySelectorAll('li span');
data
const data = [...toDoList.querySelectorAll('li > span')].map(elm => elm.innerHTML)
localStorage.setItem('todoItems', JSON.stringify(data));