使用JavaScript實(shí)現(xiàn)一個(gè)交互式待辦事項(xiàng)列表
項(xiàng)目概述:
待辦事項(xiàng)列表是一種常見(jiàn)的應(yīng)用,用于幫助人們組織、追蹤和管理任務(wù)。我們的目標(biāo)是通過(guò)JavaScript創(chuàng)建一個(gè)交互式的待辦事項(xiàng)列表,用戶可以添加、編輯、標(biāo)記完成和刪除任務(wù)。
項(xiàng)目步驟:
1、搭建基本HTML結(jié)構(gòu)
首先,我們創(chuàng)建一個(gè)簡(jiǎn)單的HTML結(jié)構(gòu),包含一個(gè)輸入框用于添加新任務(wù),以及一個(gè)用于顯示任務(wù)的列表。同時(shí),為了方便CSS樣式的引用,我們連接一個(gè)外部CSS文件。
<!DOCTYPE html> <html> <head> <title>交互式待辦事項(xiàng)列表</title> <link rel="stylesheet" href="styles.css" rel="external nofollow" > </head> <body> <h1>我的待辦事項(xiàng)</h1> <input type="text" id="taskInput" placeholder="添加新任務(wù)..."> <ul id="taskList"></ul> <script src="script.js"></script> </body> </html>
2、添加JavaScript功能
在這一步中,我們將使用JavaScript來(lái)實(shí)現(xiàn)任務(wù)的添加、顯示、編輯、完成標(biāo)記和刪除功能。我們首先創(chuàng)建一個(gè)名為script.js
的文件,并在其中添加以下代碼:
// 獲取輸入框和任務(wù)列表的引用 const taskInput = document.getElementById('taskInput'); const taskList = document.getElementById('taskList'); // 監(jiān)聽(tīng)輸入框按下回車鍵事件 taskInput.addEventListener('keypress', function (event) { if (event.key === 'Enter' && taskInput.value.trim() !== '') { addTask(taskInput.value); taskInput.value = ''; } }); // 添加新任務(wù) function addTask(taskText) { const li = document.createElement('li'); const span = document.createElement('span'); const editButton = document.createElement('button'); const deleteButton = document.createElement('button'); span.textContent = taskText; editButton.textContent = '編輯'; deleteButton.textContent = '刪除'; editButton.addEventListener('click', function () { editTask(li, span); }); deleteButton.addEventListener('click', function () { deleteTask(li); }); li.appendChild(span); li.appendChild(editButton); li.appendChild(deleteButton); taskList.appendChild(li); } // 編輯任務(wù) function editTask(taskElement, taskSpan) { const newTaskText = prompt('編輯任務(wù)', taskSpan.textContent); if (newTaskText !== null && newTaskText.trim() !== '') { taskSpan.textContent = newTaskText; } } // 刪除任務(wù) function deleteTask(taskElement) { taskElement.remove(); }
3、完善功能
現(xiàn)在,我們的待辦事項(xiàng)列表已經(jīng)能夠添加任務(wù)、編輯任務(wù)和刪除任務(wù)。但是,為了更好的用戶體驗(yàn),我們還可以增加標(biāo)記完成的功能。
首先,在HTML文件中添加一個(gè)用于標(biāo)記完成的按鈕:
<button>完成</button>
然后,在script.js
中修改addTask
函數(shù):
function addTask(taskText) { // ... const completeButton = document.createElement('button'); completeButton.textContent = '完成'; completeButton.addEventListener('click', function () { taskElement.classList.toggle('completed'); }); li.appendChild(completeButton); taskList.appendChild(li); }
最后,在CSS文件(styles.css)中添加樣式以標(biāo)記已完成的任務(wù):
.completed { text-decoration: line-through; }
結(jié)論:
通過(guò)這個(gè)完整的項(xiàng)目實(shí)例,我們演示了如何使用JavaScript實(shí)現(xiàn)一個(gè)交互式的待辦事項(xiàng)列表。從構(gòu)建HTML結(jié)構(gòu)開始,逐步添加JavaScript功能,我們實(shí)現(xiàn)了任務(wù)的添加、編輯、完成標(biāo)記和刪除。這個(gè)項(xiàng)目不僅幫助讀者了解如何使用JavaScript處理DOM元素,還展示了JavaScript在Web開發(fā)中的實(shí)用性和靈活性。讀者可以通過(guò)進(jìn)一步擴(kuò)展和優(yōu)化這個(gè)項(xiàng)目,深入探索JavaScript的強(qiáng)大功能,從而在實(shí)際項(xiàng)目中更加得心應(yīng)手。
到此這篇關(guān)于使用JavaScript實(shí)現(xiàn)一個(gè)交互式待辦事項(xiàng)列表的文章就介紹到這了,更多相關(guān)JavaScript實(shí)現(xiàn)交互式列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)計(jì)時(shí)器秒表功能
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)計(jì)時(shí)器秒表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12用js來(lái)定義瀏覽器中一個(gè)左右浮動(dòng)元素相對(duì)于頁(yè)面主體寬度的位置的函數(shù)
用js來(lái)定義瀏覽器中一個(gè)左右浮動(dòng)元素相對(duì)于頁(yè)面主體寬度的位置的函數(shù) 函數(shù)的參數(shù):elem元素、頁(yè)面主體寬度(如:990、950寬)、elem與頁(yè)面主體DIV的左邊距2012-01-01微信小程序wx.request實(shí)現(xiàn)后臺(tái)數(shù)據(jù)交互功能分析
這篇文章主要介紹了微信小程序wx.request實(shí)現(xiàn)后臺(tái)數(shù)據(jù)交互功能,分析微信小程序wx.request在后臺(tái)數(shù)據(jù)交互過(guò)程中遇到的問(wèn)題與相關(guān)的解決方法,需要的朋友可以參考下2017-11-11JavaScript實(shí)現(xiàn)生成動(dòng)態(tài)表格和動(dòng)態(tài)效果的方法詳解
這篇文章主要介紹了如何通過(guò)JavaScript語(yǔ)言實(shí)現(xiàn)動(dòng)圖表格的生成以及動(dòng)態(tài)效果的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-02-02javascript設(shè)計(jì)模式之中介者模式Mediator
這篇文章主要介紹了javascript設(shè)計(jì)模式之中介者模式Mediator,需要的朋友可以參考下2014-12-12淺析showModalDialog數(shù)據(jù)緩存問(wèn)題(用禁止瀏覽器緩存解決)
在使用showModalDialog彈出窗口時(shí),顯示的數(shù)據(jù)是上次修改前的數(shù)據(jù),這是因?yàn)槟J(rèn)情況下頁(yè)面保存了緩存,所以顯示的數(shù)據(jù)并不是修改后的情況2013-07-07前端layui?table表格勾選事件以及常見(jiàn)模塊詳解
Layui 是一個(gè)非常流行的前端框架,其中的table組件可以幫助您實(shí)現(xiàn)復(fù)選框功能,下面這篇文章主要給大家介紹了關(guān)于前端layui?table表格勾選事件以及常見(jiàn)模塊的相關(guān)資料,需要的朋友可以參考下2024-08-08關(guān)于layer.js使用心得-向彈出框傳值問(wèn)題
這篇文章主要介紹了關(guān)于layer.js使用心得-向彈出框傳值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11