💙 1주차 진도
Chapter 07 : 문서 객체 모델
Chapter 08 : 예외 처리
💙 기본 미션
p. 315의 <직접 해보는 손코딩>을 실행한 후 출력되는 고양이 이미지 캡처하기
💙 선택 미션
p. 352 누적 예제를 활용하여 본인의 할 일 목록을 만들어 캡처하기
<!DOCTYPE html>
<head>
<title>할 일 목록 만들기</title>
</head>
<body>
<h1>할 일 목록</h1>
<input id="todo">
<button id="add-button">추가하기</button>
<div id="todo-list">
</div>
</body>
<script>
document.addEventListener('DOMContentLoaded', () => {
const input = document.querySelector('#todo')
const todoList = document.querySelector('#todo-list')
const addButton = document.querySelector('#add-button')
let keyCount = 0
const addTodo = () => {
if (input.value.trim() === '') {
alert('할 일을 입력해주세요.')
return
}
const item = document.createElement('div')
const checkbox = document.createElement('input')
const text = document.createElement('span')
const button = document.createElement('button')
const key = keyCount
keyCount += 1
item.setAttribute('data-key', key)
item.appendChild(checkbox)
item.appendChild(text)
item.appendChild(button)
todoList.appendChild(item)
checkbox.type = 'checkbox'
checkbox.addEventListener('change', (event) => {
item.style.textDecoration
= event.target.checked ? 'line-through' : ''
})
text.textContent = input.value
button.textContent = '제거하기'
button.addEventListener('click', () => {
removeTodo(key)
})
input.value = ''
}
const removeTodo = (key) => {
const item = document.querySelector(`[data-key="${key}"]`)
todoList.removeChild(item)
}
addButton.addEventListener('click', addTodo)
input.addEventListener('keyup', (event) => {
const ENTER = 13
if (event.keyCode === ENTER) {
addTodo()
}
})
})
</script>
</html>
💙 6주차 회고
벌써 혼공학습단 마지막 주차였다. 혼공학습단 덕분에 매주 공부할 수 있어서 좋았다.
'JavaScript' 카테고리의 다른 글
[혼공스] 혼공학습단 11기 활동 회고 (0) | 2024.02.13 |
---|---|
[혼공스] 5주차_Chapter 06 (0) | 2024.02.04 |
[혼공스] 3주차_Chapter 04 (2) | 2024.01.21 |
[혼공스] 2주차_Chapter 03 (0) | 2024.01.13 |
[혼공스] 1주차_Chapter 01 ~ 02 (1) | 2024.01.07 |