January 23, 2022
this.$todoList.innerHTML = `<ul>${this.todos
.map((todo, index) =>
todo.isCompleted === true
? `<li data-id=${index}><s>${todo.text}</s></li>`
: `<li data-id=${index}>${todo.text}<button class="todo-complete">완료</button></li>`
)
.join('')}</ul>
`
이 코드에서 클릭시 해당 li의 id에 접근하기 위해선
this.$todoList.addEventListener('click', e => {
const index = e.target.closest('li').dataset.id
if (e.target.classList.contains('todo-complete')) {
this.todos[index].isCompleted = true
}
this.render()
})
e.target의 closest(‘li’)로 li태그에 접근후 dataset.id로 li태그에 data-id에 접근한다.
-