我正在与js和localstorage在一起,创建一个待办事项。当单击列表中的项目时,它会更改其CSS类,并从LocalStorage中删除。该项目的价值由用户决定,因此我不能在
中进行硬码localStorage.removeItem('Do the dishes');
例如。
我尝试这样做:
localStorage.removeItem(ev.target.innerText);
(以下更长的版本(。它不会给我一个错误,但也不会从localstorage中删除该项目。
var taskList = document.querySelector('ul');
taskList.addEventListener('click', function(ev) {
if (ev.target.tagName === 'LI') {
ev.target.classList.toggle('checked');
let tasks;
if(localStorage.getItem('tasks') === null ){
tasks = [];
}
else {
tasks = JSON.parse(localStorage.getItem('tasks'));
console.log("TaskList Is Not empty");
tasks.forEach(function(task, index){
if(ev.target.innerText === task){
localStorage.removeItem(ev.target.innerText);
console.log("Removed");
}
else{
console.log("Else Executed");
}
}
所有任务都添加到称为"任务"的局部孔键:
function storeTaskInLocalStorage(newTask){
let tasks;
if(localStorage.getItem('tasks') === null ){
tasks = [];
}else{
tasks = JSON.parse(localStorage.getItem('tasks'));
}
tasks.push(newTask);
localStorage.setItem('tasks', JSON.stringify(tasks));
}
如前所述,项目应该从localstorage中消失,但事实并非如此。这可能是我的代码中的错误,但我似乎找不到其他任何方法在互联网上进行操作,因此,任何帮助都将不胜感激!
如果需要进行完整的项目进行故障排除或其他任何项目,请告诉我,我可以将其上传到Codepen或其他内容:(
应该完成工作:
var taskList = document.querySelector('ul');
taskList.addEventListener('click', function (ev) {
if (ev.target.tagName === 'LI') {
ev.target.classList.toggle('checked');
let tasks;
if (localStorage.getItem('tasks') === null) {
tasks = [];
} else {
tasks = JSON.parse(localStorage.getItem('tasks'));
console.log('TaskList Is Not empty');
const taskId = tasks.indexOf(ev.target.innerText);
if (taskId !== -1) {
tasks.splice(taskId, 1);
localStorage.setItem('tasks', JSON.stringify(tasks));
}
}
}
});
我希望 tasks
是您存储毒品的一系列字符串 - 如果不是,请告诉我,我会改编代码。
您在设置和删除的键之间有错误...您尝试
localStorage.removeItem(ev.target.innerText);
当您设置的密钥是:
localStorage.getItem('tasks')
您应该做的是编辑刚刚解析的数组,然后在JSON Stringify之后再次将其保存在同一键或在不同的键下保存
您需要将其设置为
localStorage.setItem('taskName', 'Do the dishes');
然后您可以将其删除为
localStorage.removeItem('taskName');
如果您有一系列可以做的项目
const tasks= [];
task.push('Do the dishes');
task.push('Wash the car');
localStorage.setItem('taskName', JSON.stringify(task));