TO DO List
TO DO List ๋ง๋ค๊ธฐ
<div>
<form class="js-to-do to-do">
<input class="js-add-to-do to-do__add-to-do" placeholder="Write a To Do here" type="text" />
</form>
<ul class="js-list list"></ul>
</div>const form = document.querySelector(".js-to-do"),
input = document.querySelector(".js-add-to-do"),
list = document.querySelector(".js-list");
let toDos = [];
function persistToDos() {
const stringToDo = JSON.stringify(toDos);
localStorage.setItem("toDos", stringToDo);
}
function saveToDo(text) {
const toDoObject = {
id: toDos.length + 1,
value: text
};
toDos.push(toDoObject);
persistToDos();
}
function handleDelete(event) {
const target = event.target;
const li = target.parentElement;
const ul = li.parentElement;
const toDoId = li.id;
ul.removeChild(li);
toDos = toDos.filter(function(toDo) { // filter ๋ชจ๋ ์์ดํ
์ ํตํด ํจ์๋ฅผ ์คํํ๊ณ ture์ธ ์์ดํ
๋ง ๊ฐ์ง๊ณ ์๋ก์ด array๋ฅผ ๋ง๋ฌ
return toDo.id !== parseInt(toDoId); // ๋ชจ๋ toDos๊ฐ li ์ id ์ ๊ฐ์ง ์์๋
});
persistToDos();
}
function addToDo(text) {
const toDo = document.createElement("li");
toDo.className = "toDo";
toDo.id = toDos.length + 1;
const deleteBtn = document.createElement("span");
deleteBtn.innerHTML = "โ";
deleteBtn.className = "toDo__button";
deleteBtn.addEventListener("click", handleDelete);
const label = document.createElement("label");
label.innerHTML = text;
toDo.appendChild(deleteBtn);
toDo.appendChild(label);
list.appendChild(toDo);
saveToDo(text);
}
function onSubmit(event) {
event.preventDefault();
const value = input.value;
input.value = "";
addToDo(value);
}
function loadToDos() {
const loadedToDos = localStorage.getItem("toDos");
if (loadedToDos !== null) {
const parsedToDos = JSON.parse(loadedToDos);
parsedToDos.forEach(function(toDo) { // list์ ์๋ ๋ชจ๋ ltem์ ์ํ ํจ์๋ฅผ ์คํ์ํด
addToDo(toDo.value);
});
}
return;
}
function init() {
loadToDos();
}
form.addEventListener("submit", onSubmit);
init();filter
๋ฐฐ์ด์ ์ํํ๋ฉฐ ์์๋ง๋ค ์กฐ๊ฑด ํ์ธ ํ ๐ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ค๋ก ๊ตฌ์ฑ๋ ์๋ก์ด ๋ฐฐ์ด ๋ฆฌํด
๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์
์์
forEach
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํ
๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์
์์
Last updated
Was this helpful?