TodoList 만들기

2021. 6. 25. 16:59TIL/자바스크립트

728x90
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;
    toDos = toDos.filter(todo => todo.id !== parseInt(li.id));
    li.remove();
    saveTodos();
}

function paintToDo(newInput) {
    const li = document.createElement("li");
    const span = document.createElement("span");
    const button = document.createElement("button");
    li.id = newInput.id;
    span.innerText = newInput.text;
    button.innerText = "❌";
    button.addEventListener("click", deleteTodo);
    li.appendChild(span);
    li.appendChild(button);
    toDoList.appendChild(li);
}

function toDoSubmit(event) {
    event.preventDefault();
    const newInput = toDoInput.value;
    toDoInput.value = "";
    const todoObj = {text: newInput, id: Date.now()};
    toDos.push(todoObj);
    paintToDo(todoObj);
    saveTodos();
}

toDoForm.addEventListener("submit", toDoSubmit);

const savedTodos = localStorage.getItem(TODOS_KEY);

if (savedTodos) {
    const parsedTodos = JSON.parse(savedTodos);
    toDos = parsedTodos;
    parsedTodos.forEach(paintToDo);
}

 

 

JSON.stringify() : 배열을 문자열로 바꿔줌

JSON.parse() : 문자열을 배열로 바꿔줌

parseInt() : 숫자를 문자열로 바꿔줌

forEach() : 배열 뒤에 사용 할 수 있는 함수, 배열 안에 들어있는 각각의 값을 불러와 함수를 실행

 

'TIL > 자바스크립트' 카테고리의 다른 글

랜덤이미지 보여주기  (0) 2021.06.19
캐러셀 슬라이드 만들기  (0) 2021.06.18
실시간 시계 만들기  (0) 2021.06.17
로그인 화면 만들기  (0) 2021.06.17
async & await  (0) 2021.05.27