【发布时间】:2021-08-18 12:39:07
【问题描述】:
我正在用原生 JavaScript 创建一个 ToDo 应用。
我的目标是在单击相应的“X”按钮时能够从本地存储中删除输入数据。
到目前为止,当您单击 X 按钮时,使用我创建的此功能从 DOM 中删除了相应的输入字段和复选框 -
function removeToDoInput(button, input1, input2, input3) {
if (allToDoInputs.length > 2) {
button.addEventListener("click", () => {
toDoInputContainer.removeChild(input1);
toDoInputContainer.removeChild(input2);
toDoInputContainer.removeChild(input3);
for (let toDoInput = 0; toDoInput < allToDoInputs.length; toDoInput++) {
for (let i = 0; i < localStorage.length; i++) {
localStorage.removeItem("ToDo " + toDoInput);
console.log("test");
}
}
})
}
}
这很好用。但就像我提到的,我还需要从本地存储中删除相应的输入数据。
这是“待办事项”按钮功能。你会注意到 removeToDoInput 被调用了,我认为这不是很好 -
function createToDoInput() {
const newToDoInputCheckbox = document.createElement("INPUT");
newToDoInputCheckbox.setAttribute("type", "checkbox");
const newToDoInput = document.createElement("INPUT");
const newXBtn = document.createElement("SPAN");
toDoInputContainer.appendChild(newToDoInputCheckbox);
toDoInputContainer.appendChild(newToDoInput);
toDoInputContainer.appendChild(newXBtn);
newToDoInputCheckbox.classList.add("checkbox");
newToDoInput.classList.add("to-do-input");
newXBtn.classList.add("X");
newXBtn.innerHTML = "X";
newXBtn.addEventListener("click", removeToDoInput(newXBtn, newToDoInputCheckbox, newToDoInput, newXBtn));
}
这里是保存按钮功能-
function saveToDoInputs() {
localStorage.setItem("Title", toDoListTitle.value.trim());
for (let toDoInput = 0; toDoInput < allToDoInputs.length; toDoInput++) {
if (createToDoInput) {
localStorage.setItem("ToDo " + toDoInput, allToDoInputs[toDoInput].value.trim());
}
}
}
我提到的最后两个函数都通过点击事件监听器附加到按钮上。
如何从本地存储和 DOM 中删除输入?
【问题讨论】:
-
请看我的新update
标签: javascript