javascript day6

김영목·2021년 10월 6일
0

오늘은 할일을 입력하고 삭제하는 기능을 만들어볼 차례이다.


1단계 html에 있는 태그들을 변수에 담자.

const toDoForm = document.querySelector('#todo-form');
const toDoInput = document.querySelector('#todo-form input');

const toDoList = document.querySelector('#todo-list');

2단계 form의 새로고침 기능 멈추기

function handleForm(mike) {
	mike.preventDefault();
}

toDoForm.addEventListener('submit',handleForm);

3단계 입력받은 값 배열에 저장하고 그것을 보여주기

let myDoArr = [];

function handleForm(mike) {
	mike.preventDefault();
  	const myValue = toDoInput.value;
  	myValue= '';
  	const myListEle = {
    	id : Date.now();
      	text : myValue;      
    };
  	myDoArr.push(myListEle);
  	saveLocal();
}

4단계 배열에 저장된 내용 localstorage에 저장하기

local영역에 배열을 저장할 수 있을까??? 정답은 '아니요'이다.
그렇다면 어떻게 해야할까??? 해당 배열을 다른 형태로 바꿔서 저장해야한다. 이때 사용하는 메소드가 stringify이다.

function saveLocal() {
  localstorage.setItem('myStuff',JSON.stringify(myDoArr));
}

5단계 저장된 할일 list형태로 html에 출력시키기

function showMyDo (myValue) {
	const li = document.createElement('li');
  	li.id = myValue.id;
  	const span = document.createElement('span');
  	span.innerText = myValue.text;
  	const button = document.createElement('button');
  	button.innerText = '❌';
  	
  	// button이 눌리면 동작하도록 하기
 	button.addEventListener('click', DeletelLi);
  	li.appendchild('span');
  	li.appendchild('button');
  	toDoList.appendchild('li');
}

6단계 : 할일 삭제를 위한 버튼 만들기

function deleteLi(event) {
	const li = event.target.parentElement;
  	li,remove();
  	myDoArr = myDoArr.filter(toDo => toDo.id !== parseInt(li.id));
  	saveLocal()
}

7단계 : 해당 배열들이 화면에 하나씩 보일 수 있도록 해보자.

const savedToDos = localStorage.getItem(myStuff);

if (savedToDos !== null) {
	const parsedToDo = JSON.parse(savedToDos);
  	myDoArr = parsedToDo;
  	parsedToDo.foreach(showMyDo);
}

profile
안녕하세요 김영목입니다.

0개의 댓글