본문 바로가기

자바스크립트 기기기초

#7.3 Saving To Dos

  • 브라우저에 저장하려면 localStorage 필요
  •  localStorage는 오직 텍스트만 저장 가능
  • JSON.stringify : 오브젝트이든 배열이든 string으로 만들어줌  
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input"); //document.querySelector("#todo-form input");
const toDoList = document.getElementById("todo-list");

const toDos = [];

function saveToDos(){
    localStorage.setItem("todos",JSON.stringify(toDos)); //배열을 문자열로 만들어줌
}

function deleteToDo(event){
    const li = event.target.parentElement;//target:클릭된 html element(button), parentElement-Element의 부모
    li.remove();
}

function paintToDo(newTodo){
    const li = document.createElement("li");
    const span = document.createElement("span");
    const button = document.createElement("button");
    button.innerText = "❌";
    button.addEventListener("click",deleteToDo); //button을 클릭하면 event를 얻음
    li.appendChild(span);
    li.appendChild(button); //button은 span뒤에 있어야 함
    span.innerText = newTodo;
    toDoList.appendChild(li);
}

function toDoSubmit(event){
    event.preventDefault();
    const newTodo = toDoInput.value;
    toDoInput.value = "";
    toDos.push(newTodo);
    paintToDo(newTodo);
    saveToDos(); 
}

toDoForm.addEventListener("submit",toDoSubmit);

'자바스크립트 기기기초' 카테고리의 다른 글

#7.5 Loading To Dos part Two  (0) 2023.02.15
#7.4 Loading To Dos part One  (0) 2023.02.15
#7.2 Deleting To Dos  (0) 2023.02.15
#7.1 Adding ToDos  (0) 2023.02.15
#7.0 Setup  (0) 2023.02.15