日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

JavaScript 21天入門(mén):練手項(xiàng)目之我的任務(wù)管理(三):實(shí)現(xiàn)基本功能

admin
2024年10月31日 9:4 本文熱度 1222

昨天已經(jīng)搭建好了項(xiàng)目的基本框架,今天來(lái)開(kāi)干吧。

基本功能里,我們實(shí)現(xiàn)三個(gè)主要的功能:

  • 添加任務(wù)

  • 刪除任務(wù)

  • 標(biāo)記任務(wù)完成

所有的這些操作,都使用 JavaScript 操作動(dòng)態(tài)完成。

最終效果如下:

?

添加任務(wù)

先來(lái)看添加任務(wù)部分。

<input type="text" id="task-input" placeholder="輸入新任務(wù)" /> <button id="add-task-btn">添加任務(wù)</button> <ul id="task-list"></ul> 

上面是頁(yè)面的代碼,添加任務(wù)的邏輯是:

  • input里輸入任務(wù)名稱,然后點(diǎn)擊button添加。

  • 點(diǎn)擊添加后面觸發(fā)onclick事件,將新建的任務(wù)添加到列表ul里。

所以這里的要點(diǎn),是:

  • 為按鈕添加點(diǎn)擊事件

  • 獲取 input 內(nèi)容

  • 組裝任務(wù) DOM 元素,添加到列表中。

// 獲取DOM元素 const taskList = document.getElementById('task-list'); const taskInput = document.getElementById('task-input'); const addTaskBtn = document.getElementById('add-task-btn'); 

先把我們需要的三個(gè)元素獲取到,這里都使用了document.getElementById()方法。

// 添加任務(wù)函數(shù) function addTask() {   //添加代碼,一會(huì)兒補(bǔ)上。 } // 綁定事件監(jiān)聽(tīng)器 addTaskBtn.addEventListener('click', addTask); 

先定義一個(gè)處理任務(wù)添加的函數(shù)addTask(),再為按鈕添加點(diǎn)擊事件的監(jiān)聽(tīng),用的是addEventListener()方法。

最后就剩余添加任務(wù)的函數(shù)了。

我們先來(lái)看一下,在 ul 標(biāo)簽下,添加一條一條的任務(wù),是通過(guò)什么實(shí)現(xiàn)的呢?

<li class="task">   任務(wù)1   <button>完成</button>   <button>刪除</button> </li> 

其實(shí)就是上述的結(jié)構(gòu),每一個(gè)任務(wù),我們使用了一個(gè)li元素,里面有兩個(gè)按鈕,一個(gè)完成一個(gè)刪除。

這樣我們就可以在 JavaScript 中構(gòu)建 DOM 元素了。

// 添加任務(wù)函數(shù) function addTask() {   const taskText = taskInput.value;    // 1. 創(chuàng)建新的任務(wù)項(xiàng)   const newTask = document.createElement('li');   newTask.className = 'task';   newTask.textContent = taskText;    // 2. 添加完成按鈕   const completeBtn = document.createElement('button');   completeBtn.textContent = '完成';    // 3. 添加刪除按鈕   const deleteBtn = document.createElement('button');   deleteBtn.textContent = '刪除';    newTask.appendChild(completeBtn);   newTask.appendChild(deleteBtn);    // 4. 將新任務(wù)項(xiàng)添加到任務(wù)列表中   taskList.appendChild(newTask); } 

通過(guò)上述代碼,我們創(chuàng)建了li元素和兩個(gè)button元素,并把它們按上述層級(jí)關(guān)系組裝好,最后追加到任務(wù)列表中。

刪除任務(wù)

有了前面的代碼,想要?jiǎng)h除任務(wù),就是在刪除按鈕上同樣添加一個(gè)點(diǎn)擊事件監(jiān)聽(tīng)。

  // 3. 添加刪除按鈕   const deleteBtn = document.createElement('button');   deleteBtn.textContent = '刪除';   deleteBtn.addEventListener('click', () => {     taskList.removeChild(newTask);   }); 

把前面的添加刪除按鈕代碼里,添加事件監(jiān)聽(tīng),然后通過(guò) removeChild()方法,就直接刪除了。

任務(wù)標(biāo)記完成

同樣的道理,在完成按鈕上,也是添加事件監(jiān)聽(tīng),所不同的是這里使用了toggle()方法,為這個(gè)任務(wù)添加了一個(gè) completed 類。

  // 2. 添加完成按鈕   const completeBtn = document.createElement('button');   completeBtn.textContent = '完成';   completeBtn.addEventListener('click', () => {     newTask.classList.toggle('completed');   }); 

這個(gè) completed 類,是在前面定義的,如下:

.task.completed {   text-decoration: line-through; } 

完善

這樣我們就完成基本的代碼,但是如果你試了,會(huì)發(fā)現(xiàn)有一點(diǎn)點(diǎn)和我們展示的不一樣,因?yàn)檫@里少了個(gè)細(xì)節(jié)處理。

// 添加任務(wù)函數(shù) function addTask() {   const taskText = taskInput.value;   if (taskText === '') {     alert('任務(wù)不能為空');     return;   }    //其它代碼    // 清空輸入框   taskInput.value = ''; } 

如果加上判斷任務(wù)不能為空,以及在最后把任務(wù)的 input 清空,整個(gè)過(guò)程看起來(lái)就更好了。

完整的 JavaScript 代碼如下:

// 獲取DOM元素 const taskList = document.getElementById('task-list'); const taskInput = document.getElementById('task-input'); const addTaskBtn = document.getElementById('add-task-btn');  // 添加任務(wù)函數(shù) function addTask() {   const taskText = taskInput.value;   if (taskText === '') {     alert('任務(wù)不能為空');     return;   }    // 1. 創(chuàng)建新的任務(wù)項(xiàng)   const newTask = document.createElement('li');   newTask.className = 'task';   newTask.textContent = taskText;    // 2. 添加完成按鈕   const completeBtn = document.createElement('button');   completeBtn.textContent = '完成';   completeBtn.addEventListener('click', () => {     newTask.classList.toggle('completed');   });    // 3. 添加刪除按鈕   const deleteBtn = document.createElement('button');   deleteBtn.textContent = '刪除';   deleteBtn.addEventListener('click', () => {     taskList.removeChild(newTask);   });    newTask.appendChild(completeBtn);   newTask.appendChild(deleteBtn);    // 將新任務(wù)項(xiàng)添加到任務(wù)列表中   taskList.appendChild(newTask);    // 清空輸入框   taskInput.value = ''; }  // 綁定事件監(jiān)聽(tīng)器 addTaskBtn.addEventListener('click', addTask); 

總結(jié)

恭喜你完成了今天部分的學(xué)習(xí),希望你也動(dòng)手親自寫(xiě)了寫(xiě)代碼。

咱們明天繼續(xù)。


該文章在 2024/11/1 9:24:32 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved