JavaScript 체크리스트에서 삭제 및 완료 버튼
이전 강의에서 과제를 해결한 후 다음과 같은 코드가 완성되었을 것입니다:
<input id="input">
<ul id="list"></ul>
let input = document.querySelector('#input');
let list = document.querySelector('#list');
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
li.textContent = this.value;
list.appendChild(li);
this.value = '';
}
});
이제 '삭제' 버튼과
'완료' 버튼을 추가해 보겠습니다. 이 버튼들을
span 태그로 구현하겠습니다. 또한 span 태그 안에
할 일 텍스트도 넣겠습니다:
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
let task = document.createElement('span');
task.textContent = this.value;
li.appendChild(task);
let remove = document.createElement('span');
remove.textContent = '삭제';
li.appendChild(remove);
let mark = document.createElement('span');
mark.textContent = '완료';
li.appendChild(mark);
list.appendChild(li);
this.value = '';
}
});
또한 각 span 태그에 CSS 클래스를 부여하여
CSS를 통해 접근하고 원하는 스타일을 적용할 수 있게 하겠습니다:
let input = document.querySelector('#input');
let list = document.querySelector('#list');
input.addEventListener('keypress', function(event) {
if (event.key == 'Enter') {
let li = document.createElement('li');
let task = document.createElement('span');
task.classList.add('task');
task.textContent = this.value;
li.appendChild(task);
let remove = document.createElement('span');
remove.classList.add('remove');
remove.textContent = '삭제';
li.appendChild(remove);
let mark = document.createElement('span');
mark.classList.add('mark');
mark.textContent = '완료';
li.appendChild(mark);
list.appendChild(li);
this.value = '';
}
});
추가한 클래스에 CSS를 적용해 보겠습니다:
#list span {
margin-right: 5px;
}
#list .remove, #list .mark {
color: blue;
cursor: pointer;
}
#list .remove:hover, #list .mark:hover {
text-decoration: underline;
}