JavaScript 系列二:第3課
認識 for 迴圈
by applelily
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>待辦事項管理</title>
<link rel="stylesheet" href="./js_DOM.css">
</head>
<body>
<div class="bg-container">
<div class="input_text">
<h1>
To Do List
</h1>
<input type="text" name="to_do" id="to_do" placeholder="想記錄些什麼...">
<button id ="add_List" onclick="addList()">新增</button>
<button class="export_btn" onclick="exportList()">匯出清單</button>
</div>
<div class="to_do_list">
<h3>待辦事項的清單</h3>
<ul id="toDoList">
</ul>
</div>
</div>
<script src="./js_DOM.js"></script>
</body>
</html>
CSS
* {
margin: 0;
padding: 0;
}
body{
color: #82715f;
}
.bg-container{
background-image: url('https://imgur.com/0GIPhB0.jpg');
width: 640px;
min-height: 100px;
border-radius: 8px;
margin:auto;
padding-top: 20px;
padding-bottom: 30px;
}
.input_text{
margin-left: 40px;
}
.input_text input{
min-width: 300px;
height: 2em;
font-size: 18px;
padding-left: 10px;
}
.input_text button{
border: none;
color: #fff;
background-color: #82715f;
width: 100px;
height: 2em;
border-radius: 8px;
margin-left: 15px;
font-size: 18px;
cursor: pointer;
}
.to_do_list{
background-color: #f2eee2;
border-radius: 10px;
width: 540px;
min-height: 500px;
margin: auto;
margin-top: 20px;
padding: 10px 10px;
}
.to_do_list h3{
text-align: center;
line-height: 2;
letter-spacing: 0.3em;
border-bottom: 1px dashed #C8C8C8 ;
}
.to_do_list ul{
padding-left: 20px;
}
.to_do_list ul li{
padding: 10px 10px;
border-bottom: 1px dashed #C8C8C8 ;
}
.to_do_list ul li span button{
float: right;
width: 25px;
height: 25px;
color: #fff;
background-color:#82715f;
font-size: 20px;
}
.to_do_list ul li span button:hover{
background-color: #ff0000;
cursor: pointer;
}
JavaScript
let elem_toDo = document.getElementById('to_do');
elem_toDo.addEventListener("keypress",
function(event){
if(event.key === "Enter") {
document.getElementById('add_List').click();
}
})
function addList(){
let toDoValue = document.getElementById('to_do').value;
function delItem() {
let grandParent = event.target.closest('li');
// alert(grandParent);
grandParent.remove();
}
if (toDoValue!="") {
console.log(toDoValue);
let elem_li = document.createElement('li');
let elem_span = document.createElement('span');
let elem_del_btn = document.createElement('button');
elem_del_btn.textContent="✖︎";
elem_del_btn.onclick= delItem;
let app_ul = document.getElementById('toDoList');
app_ul.append(elem_li);
elem_li.append(elem_span);
elem_span.textContent= toDoValue;
elem_span.value=toDoValue;
elem_span.append(elem_del_btn);
}
elem_toDo.value="";
elem_toDo.focus();
}
function exportList(){
let lists = document.getElementsByTagName('span');
if (lists.length!=0) {
let list = "";
let num = 1;
let text = "";
console.log(lists);
for (list of lists) {
console.log(list.value);
text = text+ num.toString() + '. ' + list.value + "\n";
num += 1;
}
alert('今日待辦:\n' + text);
}
}