JSFiddle - React, Tailwind, and code Playground
by evon0306
HTML
<input type="text">
<button onclick="add()">新增</button>
<select>
<option value="normal">一般</option>
<option value="important">重要</option>
<option value="urgent">緊急</option>
</select>
<div id="root">
</div>
<button onclick="exportTodos()">匯出</button>
CSS
* {
margin: 0;
padding: 0;
list-style: none;
}
JavaScript
var todos = [
{
title: "倒垃圾",
category: "normal",
isCompleted: false
},
{
title: "繳電話費",
category: "important",
isCompleted: false
},
{
title: "採買本週食材",
category: "urgent",
isCompleted: false
},
];
let todoList = JSON.parse(localStorage.getItem('saveList')) || todos;
console.log(todoList);
render();
function render(){
const root = document.querySelector('#root');
root.textContent = "";
let ul = document.createElement('ul');
for( let x in todoList){
let todo = todoList[x];
let li = document.createElement('li');
let span = document.createElement('span');
let span2 = document.createElement('span');
let span3 = document.createElement('span');
let delBtn = document.createElement('button');
delBtn.onclick = () => {
todoList.splice(x, 1)
render();
};
if(todo.isCompleted == false){
span2.textContent = "[標示為已完成]";
span3.textContent = " ";
}else{
span2.textContent = "[標示為未完成]";
span3.textContent = " (已完成) ";
}
span2.onclick = () =>{
todo.isCompleted = !todo.isCompleted;
render();
}
if(todo.category == "urgent"){
span.style.color = "red"
}else if(todo.category == "important"){
span.style.color = "blue"
}else{
span.style.color = "black"
}
span.textContent = todo.title;
delBtn.textContent = "刪除";
li.append(span);
li.append(span3);
li.append(span2);
li.append(delBtn);
ul.append(li);
}
root.append(ul);
}
function add(){
let input = document.querySelector('input');
let select = document.querySelector('select');
let text = input.value;
let change = select.value;
todoList.push({
title: text,
category: change,
isCompleted: false,
});
render();
input.value = "";
select.value =...