方向三:通过项目实例演示如何使用JavaScript| 豆包MarsCode AI刷题

134 阅读2分钟

通过一个简单的项目实例来演示如何使用JavaScript实现一个待办事项(To-Do List)应用。这个应用将能允许用户添加、删除和标记完成的待办事项。

项目背景

在快节奏的现代生活中,我们经常需要记住各种任务和活动。一个简单而有效的待办事项应用可以帮助我们组织日常事务,提高生产力。这个应用将使用纯JavaScript来实现,不依赖任何外部库或框架。

项目需求

  1. 显示一个输入框,用于输入待办事项。
  2. 有一个添加按钮,用于将输入的事项添加到待办列表中。
  3. 待办事项列表显示所有事项。
  4. 每个事项旁边有一个删除按钮,用于删除该事项。
  5. 每个事项旁边有一个完成按钮,用于标记该事项为已完成。

HTML结构

html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>To-Do List</title>
</head>
<body>
    <h1>My To-Do List</h1>
    <input type="text" id="new-task" placeholder="Add a new task">
    <button onclick="addTask()">Add Task</button>
    <ul id="task-list"></ul>

    <script src="todo.js"></script>
</body>
</html>

CSS样式(可选)

css
#task-list li {
    list-style: none;
    margin: 5px 0;
    padding: 5px;
    background-color: #f4f4f4;
}
button {
    margin-left: 10px;
}
.completed {
    text-decoration: line-through;
}

JavaScript实现

javascript
// todo.js
function addTask() {
    const input = document.getElementById('new-task');
    const task = input.value.trim();
    if (task) {
        const taskList = document.getElementById('task-list');
        const listItem = document.createElement('li');
        listItem.textContent = task;
        const deleteBtn = document.createElement('button');
        deleteBtn.textContent = 'Delete';
        deleteBtn.onclick = function() {
            taskList.removeChild(listItem);
        };
        const completeBtn = document.createElement('button');
        completeBtn.textContent = 'Complete';
        completeBtn.onclick = function() {
            listItem.classList.toggle('completed');
        };
        listItem.appendChild(deleteBtn);
        listItem.appendChild(completeBtn);
        taskList.appendChild(listItem);
        input.value = ''; // 清空输入框
    } else {
        alert('Please enter a task!');
    }
}

功能解释

  1. HTML:定义了应用的基本结构,包括一个输入框、一个添加按钮和一个用于显示待办事项的列表。

  2. CSS:为待办事项列表添加了一些基本样式,使界面更美观。

  3. JavaScript

    • addTask 函数首先获取输入框的值,如果输入不为空,则创建一个新的列表项(<li>)。
    • 为每个列表项创建“删除”和“完成”按钮,并设置它们的点击事件处理函数。
    • “删除”按钮的点击事件处理函数会从列表中移除对应的待办事项。
    • “完成”按钮的点击事件处理函数会切换待办事项的样式,标记为已完成。
    • 最后,清空输入框以便添加下一个待办事项。

功能增强

  • 编辑功能:允许用户编辑已存在的待办事项。
  • 优先级标记:让用户能够为待办事项设置优先级。
  • 持久化存储:使用本地存储(如localStorage)来保存待办事项,即使刷新页面也不会丢失数据。
  • 任务过滤:允许用户根据完成状态过滤待办事项 这个简单的待办事项应用展示了如何使用HTML、CSS和JavaScript来实现一个交互式的Web应用。用户可以动态地添加、删除和标记待办事项,而不需要刷新页面。并且此项目可以根据需要进一步扩展,例如添加持久化存储、编辑功能等。