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