JSFiddle - React, Tailwind, and code Playground

by birdie2019

HTML

<input type="text" id="input-todo">
<button onclick="add()">新增</button>
<select id="event-cat">
 <option value="normal">一般</option>
 <option value="important">重要</option>
 <option value="urgent">緊急</option>
</select>
<hr>
<div id="root">
</div>

JavaScript

var todos = [
  {
    title: "倒垃圾",
    category: "normal"
  },
  {
    title: "繳電話費",
    category: "important"
  },
  {
    title: "採買本週食材",
    category: "urgent"
  },
];

function render() {
  var root = document.querySelector('#root');
  root.textContent = '';
  var ul = document.createElement('ul');
  root.append(ul);
  for (const index in todos) {
    var todo = todos[index];
    var li = document.createElement('li');
    var span = document.createElement('span');
    var deleteBtn = document.createElement('button');
    ul.append(li);
    li.append(span);
    li.append(deleteBtn);
    deleteBtn.textContent = '刪除';
    span.textContent = todo.title;
    if (todo.category == 'important') {
      span.style.color = 'orange';
    } else if (todo.category == 'urgent') {
      span.style.color = 'red';
    }
    deleteBtn.onclick = () => {
      console.log(index);
      todos.splice(index,1);
      render();
    };
  }
}

render();

function add() {
  var inputTodo = document.querySelector('#input-todo');
  var eventCat = document.querySelector('#event-cat');
  var eventCatIndex = eventCat.selectedIndex;
  var eventValue = eventCat.options[eventCatIndex].value;
  var newTodo = {
    title: inputTodo.value, 
    category: eventValue,
  };
  todos.push(newTodo);
  render();
	inputTodo.value = '';
}