본문 바로가기
[Study] 개발 공부/[Project] 바닐라JS

dataset 사용하여 todoList 삭제 구현

by 지공A 2024. 12. 27.
let todoList = [];

function addTodo() {
  // 여기에 기능을 구현하세요.
  const newTodoInputEl = document.getElementById("newTodo");
  todoList.push(newTodoInputEl.value);
  renderTodos();
}

function deleteTodo(index) {
  // 여기에 기능을 구현하세요.
  todoList.splice(index,1);
  renderTodos();
}

function renderTodos() {
  // 여기에 기능을 구현하세요.
  const todoUlEl = document.getElementById("todoList");
  todoUlEl.innerHTML= "";
  todoUlEl.innerHTML = todoList.map((todo, index) => 
    `<li class="todo">${todo} <button data-index="${index}">삭제</button></li>`
  ).join("");

  todoUlEl.addEventListener("click", (e)=>{

    if(e.target.tagName ==="BUTTON") {
      const index = e.target.dataset.index;
      deleteTodo(index);
    }
  })
  
  // for(let i = 0; i < todoList.length; i++) {
  //   const newTodoEl = document.createElement("li");
  //   newTodoEl.classList.add("todo");
  //   const deleteButtonEl = document.createElement("button");
  //   deleteButtonEl.textContent = "삭제";
  //   deleteButtonEl.addEventListener("click", () => deleteTodo(i));
  //   newTodoEl.textContent= todoList[i];
  //   newTodoEl.appendChild(deleteButtonEl);
  //   todoUlEl.appendChild(newTodoEl);
  // }
}
renderTodos();