06-02-array-push
by ZooeyLai
HTML
<div class="wrap">
<div class="form-group">
<input type="text" id="newTask" class="form-input">
<button class="btn btn-primary" onclick="add()">新增</button>
</div>
<div id="root"></div>
</div>
CSS
:root{
--primary: #4f46e5;
--secondary:#2563eb;
--secondary100: #dbeafe;
--gray800: #333;
--white: #fff;
--background:#e4e4e4;
--warning100 :#ffedd5;
--warning : #ea580c;
--danger100 :#fee2e2;
--danger : #dc2626;
--success : #059669;
--success100: #ecfdf5;
}
*,
*::after,
*::before {
padding: 0px;
margin: 0px;
font-family: inherit;
box-sizing: border-box;
line-height: 1.5;
}
html,
body {
height: 100vh;
}
body {
font-family: sans-serif;
font-size: 16px;
display: flex;
/* flex-direction: column;
align-items: center;
justify-content: center; */
background-color: aliceblue;
}
.wrap{
width: 600px;
margin: 100px auto;
}
ul,li{
list-style: none;
}
.form-group{
margin-bottom: 1rem;
display: flex;
flex-flow: row;
justify-content: space-between;
gap: 1rem;
}
.form-input {
border: 1px solid #94a3b8;
padding: 0.5rem 1rem;
border-radius: 0.25rem;
flex: auto;
}
.form-input:focus {
border-color: var(--primary);
box-shadow: 0px 0px 0px 3px rgba(79, 70, 229, 0.4);
outline: none;
}
.task-list li{
padding: 1.5rem 1rem;
font-size: 0.875rem;
display: flex;
align-items: center;
gap: 0.75rem;
border-left: 4px solid #c1c1c1;
border-radius: 0.25rem;
background-color: var(--white);
}
.task-list li span{
flex: auto;
}
.task-list li + li{
margin: 0.5rem 0;
}
.task-list li:last-child{
margin-bottom: 1rem;
}
.task-list li span.done{
flex: none;
color: var(--success);
display: none;
font-weight: 600;
}
.btn {
padding:...
JavaScript
'use strict'; //嚴格模式
// let todos =[];
let todos = [
{ title: '倒垃圾' },
{ title: '繳電話費' },
{ title: '採買本週食材' },
];
let root = document.querySelector('#root');
let tasksHolder = document.createElement('ul');
function render(){
tasksHolder.textContent = ''; //重新渲染之前清除任務列表
tasksHolder.classList.add('task-list');
root.append(tasksHolder);
todos.forEach((task) => {
let taskList = document.createElement('li');
let newTaskEl = document.createElement('span');
newTaskEl.classList.add('task-label');
tasksHolder.append(taskList);
taskList.append(newTaskEl);
newTaskEl.textContent = task.title;
})
}
render();
function add(){
// 請寫出此函式內容(更新 todos 陣列)
let todoInput = document.querySelector('#newTask'); // 建立變數,取得input的value
let newTodo = { title: todoInput.value };
todos.push(newTodo);
render();
todoInput.value = '';
console.log(todos);
}