ปุ่มลบและปุ่มทำเสร็จในเช็คลิสต์ด้วย JavaScript

หลังจากแก้ไขปัญหาต่างๆ ในบทเรียนที่แล้ว คุณน่าจะได้โค้ดดังต่อไปนี้:

html<input id="input">
<ul id="list"></ul>
javascriptlet 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 ด้วย:

javascriptinput.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 = '';
  }
});

เรามากำหนดคลาส CSS ให้กับแต่ละ แท็ก span ด้วย เพื่อที่เราจะสามารถ กำหนดสไตล์ความสวยงามที่ต้องการผ่าน CSS ได้:

javascriptlet 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 ให้กับคลาสที่เราสร้างขึ้น:

css#list span {
  margin-right: 5px;
}
#list .remove, #list .mark {
  color: blue;
  cursor: pointer;
}
#list .remove:hover, #list .mark:hover {
  text-decoration: underline;
}