Create and manage a to-do list
HTML
<div id="test">
<label for="add">項目:
<input type="text" id="add" placeholder="請輸入你要新增的事項">
</label>
<br>
<button type="submit" onclick ="add()">新增</button>
<button type="submit" onclick="changWord()">轉為純文字</button>
<select id="selectLevel" onchange="changecolor()">
<option value= "normal">一般</option>
<option value="important">重要</option>
<option value="urgent">緊急</option>
</select>
</div>
<br><br>
<div id="app">
</div>
CSS
* {
font-size: 30px;
font-weight: 700;
box-sizing: border-box;
}
#test {
border: 5px solid #4CAF50;
border-radius: 12px;
padding: 20px;
width: 800px;
margin: 0 auto;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
#app {
margin: 0 auto ;
width: 800px;
padding: 20px;
}
li {
display: flex; /* 啟用 flexbox 讓項目內的內容有彈性 */
justify-content: space-between; /* 讓文字和按鈕兩邊對齊 */
align-items: center; /* 讓內容垂直置中 */
padding: 10px;
border-bottom: 1px solid #ddd;
}
.deleButton {
font-size: 20px;
margin-right: 0;
}
. normalitem {
background-color: none;
}
.importantitem {
background-color: orange;
}
.urgentitem {
background-color: rgb(216, 74, 74);
}
JavaScript
const addAll = [];
const addAllLevels = [];
function add() {
let addthing = document.getElementById('add').value.trim();
if (addthing === '') {
alert('請輸入項目。');
return;
}
let level = document.getElementById('selectLevel').value;
//取出select的值 加入陣列 用於 純文字 輸出判斷
let li = document.createElement('li')
//建立li元素
let span = document.createElement('span');
span.textContent = addthing;
//建立span元素
let finish = document.createElement('span');
let surefinish = document.createElement('button');
// finish.className = 'finish';
finish.style.display = 'none';
finish.style.fontWeight = 400;
finish.style.color = 'red';
finish.textContent = '(已完成)';
surefinish.textContent = '[標示為已完成]';
surefinish.onclick = function() {
if (finish.style.display ==='none') {
finish.style.display = 'block';
}else {
finish.style.display = 'none';
}
}
let button = document.createElement('button');
//建立刪除按鈕元素
button.textContent = '刪除';
button.className = 'deleButton';
// button.style.marginLeft = '20px';
// button.style.fontSize = '20px';
button.onclick = function() {
li.remove();
}
if (selectLevel.value ==='normal') {
span.className = 'normalitem';
}else if (selectLevel.value ==='important') {
span.className = 'importantitem'
}else if (selectLevel.value ==='urgent') {
span.className = 'urgentitem'
}
li.append(span);
li.append(finish);
li.append(surefinish);
li.append(button);
let app = document.getElementById('app');
app.append(li)
addAll.push(addthing);
addAllLevels.push(level);
document.getElementById('add').value = '';
}
function changecolor() {
const select = document.getElementById('selectLevel');
const input = document.getElementById('add');
const selectValue = select.value;
if (selectValue ==='important') {
input.className = 'importantitem';
}else if (selectValue ==='urgent') {
input.className = 'urgentitem';
}else {
...