본문 바로가기

프론트엔드/javascript

javascript (12) - TodoList #1

ToDoList 추가하기 #1

1. ToDoList 입력칸 만들기 (input)
2. 입력된 내용 목록으로 만들기 (li, span)

 

<html>

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>login</title>
</head>

<body>
<h2 id="clock">00:00:00</h2>

<form id="login-form" class="hidden">
<input required maxlength="15" type="text" placeholder="What is your name?" />
<button>Log-in</button>
</form>

<form id="greeting" class="hidden">
<h1></h1>
<button>Log-out</button>
</form>

<form id="todo-form"> // todo 입력칸
<input type="text" placeholder="Write a To Do and press Enter." required />
</form>
<ui id="todo-list"></ui>

<div id="quote">
<span></span>
<span></span>
</div>
 
<script src="js/greetings.js"></script>
<script src="js/clock.js"></script>
<script src="js/quotes.js"></script>
<script src="js/backgrounds.js"></script>
<script src="js/todo.js"></script>
</body>

</html>

<js>

const toDoForm = document.querySelector("#todo-form");
const toDoInput = toDoForm.querySelector("input")
const toDoList = document.querySelector("#todo-list");

function painToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
li.appendChild(span);
span.innerText = newTodo;
toDoList.appendChild(li);

}

function handleToDoSubmit(event) {
event.preventDefault();
const newTodo = toDoInput.value;
toDoInput.value = "";
painToDo(newTodo);

}

toDoForm.addEventListener("submit", handleToDoSubmit);

* function handleToDoSubmit(event) 함수

event.preventDefault();  -  submit 될 때 자동 새로고침 중지

const newTodo = toDoInput.value;  -  입력된 값을 newTodo 변수에 저장

toDoInput.value = ""  -  입력된값을 초기화 (빈칸으로 돌림) #newTodo에 저장된 변수 유지

painToDo(newTodo); - newTodo에 저장된 변수를 painToDo 함수로 전달

 

* function painTodo(newToDo) 함수

const li = document.creatElemet("li")  -  <li> 태그를 변수 li에 저장

const span = document.creatElemet("span")  -  <span> 태그를 변수 span에 저장

li.appenChild(span);  -  <span> 태그를 <li> 태그 하위로 이동

span.innerText = newTodo;  -  newTodo 인자를 <span> 태그에 입력

toDoList.appendChild(li);  -  id = todo-List 해당하는 곳에 <li> 태그를 하위로 이동

 

*toDoForm.addEventListener("submit", handleToDoSubmit);

- submit 이벤트시 handleToDoSubmit 함수 실행

반응형