构建一个待办事项列表(To-Do List)应用程序

此程序将允许用户添加新任务,标记任务为完成,以及删除任务。

HTML结构

首先,我们需要一个HTML页面来展示我们的待办事项列表。在<body>标签内,我们可以放置一个输入框用于添加新任务,一个按钮用于提交新任务,以及一个用于显示任务的列表。

html 复制代码
<!DOCTYPE html>  
<html>  
<head>  
    <title>To-Do List App</title>  
    <style>  
        .completed {  
            text-decoration: line-through;  
        }  
    </style>  
</head>  
<body>  
    <h1>To-Do List</h1>  
    <input type="text" id="newTask" placeholder="Add a new task">  
    <button id="addTask">Add Task</button>  
    <ul id="taskList">  
        <!-- Task items will go here -->  
    </ul>  
    <script src="app.js"></script>  
</body>  
</html>

JavaScript实现

然后,我们在一个名为app.js的外部JavaScript文件中编写我们的程序逻辑。

javascript 复制代码
// 获取HTML元素引用  
const newTaskInput = document.getElementById('newTask');  
const addTaskButton = document.getElementById('addTask');  
const taskList = document.getElementById('taskList');  
  
// 添加新任务的功能  
addTaskButton.addEventListener('click', function() {  
    // 获取输入框中的文本  
    const taskText = newTaskInput.value.trim();  
  
    // 检查是否有文本输入  
    if (taskText) {  
        // 创建新的列表项  
        const listItem = document.createElement('li');  
        listItem.textContent = taskText;  
  
        // 添加完成任务的功能  
        listItem.addEventListener('click', function() {  
            listItem.classList.toggle('completed');  
        });  
  
        // 添加删除任务的功能  
        const deleteButton = document.createElement('button');  
        deleteButton.textContent = 'Delete';  
        deleteButton.addEventListener('click', function() {  
            taskList.removeChild(listItem);  
        });  
  
        listItem.appendChild(deleteButton);  
        taskList.appendChild(listItem);  
  
        // 清空输入框  
        newTaskInput.value = '';  
    }  
});

代码解释

  1. 获取HTML元素引用
    我们使用document.getElementById()方法来获取HTML页面中元素的引用,这样我们就可以在JavaScript中操作这些元素了。
  2. 添加新任务
    我们给"Add Task"按钮添加了一个点击事件监听器。当按钮被点击时,它会执行一个匿名函数。这个函数首先获取输入框中的文本,然后检查是否有文本输入。如果有,它就创建一个新的<li>元素,并将其添加到任务列表中。同时,它还创建了一个"Delete"按钮,用于删除任务。
  3. 完成任务和删除任务
    我们还给每个任务列表项添加了一个点击事件监听器。当列表项被点击时,它会切换completed类,从而改变文本的样式(通过CSS中的text-decoration: line-through;)。"Delete"按钮也有一个点击事件监听器,当它被点击时,它会从其父元素(即任务列表)中移除相应的任务列表项。

总结

这个待办事项列表应用程序展示了如何使用JavaScript来操作DOM、处理用户输入和事件,以及实现基本的应用程序逻辑。虽然这个例子相对简单,但它涵盖了很多在构建更复杂的Web应用程序时会用到的基本概念和技术。通过学习和实践这些技术,你可以逐渐掌握如何使用JavaScript来创建功能丰富、交互性强的Web应用程序。

相关推荐
分号12 分钟前
你在运行该虚拟机时启用了侧通道缓解
windows
zcbdandan36 分钟前
JNA内存对齐导致的结构体数组传输错误
数据结构·算法
持梦远方1 小时前
持梦行文本编辑器(cmyfEdit):架构设计与十大核心功能实现详解
开发语言·数据结构·c++·算法·microsoft·visual studio
鹿角片ljp1 小时前
深入理解Java集合框架:核心接口与实现解析
java·开发语言·windows
im_AMBER2 小时前
Leetcode 90 最佳观光组合
数据结构·c++·笔记·学习·算法·leetcode
葱段2 小时前
Windows 安装 Chocolatey 包管理器
windows
点云SLAM3 小时前
boost中graph_traits和adjacency_list 的内存布局以及最小图示例
数据结构·数据库·图论·boost库·最小图·链接矩阵·graph_traints技术
张火火isgudi3 小时前
VMware Debian 挂载 Windows 文件夹至 Debian 目录
linux·运维·windows·debian
自信150413057593 小时前
数据结构初阶之单链表
c语言·数据结构
报错小能手3 小时前
数据结构 AVL树讲解
数据结构·算法