TodoList 를 입력할 때 객체를 넣어주었다. text 뿐만 아니라, 랜덤한 id 값을 주었다.
toDos[] 는 이제 { text: newTodoObj, id: Date.now() } 로 이루어진 배열이다.
id 값은 storage 와 list 에 추가되서 list 중 무엇을 지웠는지 알게 해 줄것이다.
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const TODOS_KEY = "todos"
let toDos = [];
function saveToDos() {
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos));
}
function deleteTodo(event) {
const li = event.target.parentElement;
console.log(li.id)
li.remove();
}
function padintTodo(newTodo) {
const li = document.createElement("li");
li.id = newTodo.id;
const span = document.createElement("span");
span.innerText = newTodo.text;
const button = document.createElement("button");
button.innerText = "X";
button.addEventListener("click", deleteTodo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newTodo = toDoInput.value;
toDoInput.value = "";
const newTodoObj = {
text: newTodo,
id: Date.now()
};
toDos.push(newTodoObj);
padintTodo(newTodoObj);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY);
if(savedToDos) {
const parsedTodos = JSON.parse(savedToDos);
toDos = parsedTodos;
parsedTodos.forEach(padintTodo);
}