JavaScript待办事项列表

简介: JavaScript待办事项列表

创建一个功能丰富的待办事项列表应用。这个应用将使用JavaScript来管理用户输入的待办事项,并允许用户添加、删除和标记这些事项为已完成。此外,应用还将使用Web Storage API来在本地保存用户数据,这样即使页面刷新或关闭,用户的待办事项也不会丢失。

HTML结构

首先,我们需要创建一个HTML文件来容纳我们的待办事项列表应用。

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>待办事项列表</title>  
    <link rel="stylesheet" href="styles.css">  
</head>  
<body>  
    <div id="app">  
        <h1>待办事项列表</h1>  
          
        <input type="text" id="newTaskInput" placeholder="添加新任务...">  
        <button id="addTaskButton">添加</button>  
          
        <ul id="taskList">  
            <!-- 任务列表将在这里动态生成 -->  
        </ul>  
          
        <button id="clearCompletedButton">清除已完成</button>  
    </div>  
      
    <script src="app.js"></script>  
</body>  
</html>

CSS样式

接下来,我们创建一个CSS文件来美化我们的待办事项列表应用。

/* styles.css */  
  
#app {  
    max-width: 400px;  
    margin: 0 auto;  
    padding: 20px;  
}  
  
input[type="text"] {  
    width: 100%;  
    padding: 10px;  
    margin-bottom: 10px;  
}  
  
button {  
    padding: 10px 20px;  
}  
  
ul {  
    list-style: none;  
    padding: 0;  
}  
  
li {  
    margin-bottom: 10px;  
    padding: 10px;  
    background-color: #f4f4f4;  
    position: relative;  
}  
  
li.completed {  
    background-color: #e0e0e0;  
}  
  
li button {  
    position: absolute;  
    right: 10px;  
    top: 10px;  
}

 

JavaScript功能实现

// app.js  
  
// 获取DOM元素  
const newTaskInput = document.getElementById('newTaskInput');  
const addTaskButton = document.getElementById('addTaskButton');  
const taskList = document.getElementById('taskList');  
const clearCompletedButton = document.getElementById('clearCompletedButton');  
  
// 从本地存储中加载任务  
const tasks = JSON.parse(localStorage.getItem('tasks')) || [];  
  
// 渲染任务列表  
function renderTaskList() {  
    taskList.innerHTML = ''; // 清空任务列表  
    tasks.forEach(task => {  
        const li = document.createElement('li');  
        li.textContent = task.text;  
        li.classList.toggle('completed', task.completed);  
  
        const deleteButton = document.createElement('button');  
        deleteButton.textContent = '删除';  
        deleteButton.addEventListener('click', () => removeTask(task));  
  
        li.appendChild(deleteButton);  
        taskList.appendChild(li);  
    });  
}  
  
// 添加新任务  
function addNewTask() {  
    const taskText = newTaskInput.value.trim();  
    if (taskText) {  
        const newTask = { text: taskText, completed: false };  
        tasks.push(newTask);  
        localStorage.setItem('tasks', JSON.stringify(tasks)); // 保存到本地存储  
        newTaskInput.value = ''; // 清空输入框  
        renderTaskList(); // 渲染任务列表  
    }  
}  
  
// 删除任务  
function removeTask(task) {  
    const index = tasks.indexOf(task);  
    if (index !== -1) {  
        tasks.splice(index, 1);  
        localStorage.setItem('tasks', JSON.stringify(tasks)); // 保存到本地存储  
        renderTaskList(); // 渲染任务列表  
    }  
}  
  
// 清除已完成的任务  
function clearCompleted() {

 

相关文章
|
2月前
|
开发框架 前端开发 JavaScript
使用JavaScript、jQuery和Bootstrap构建待办事项应用
使用JavaScript、jQuery和Bootstrap构建待办事项应用
15 0
|
4月前
|
前端开发 JavaScript
js + ajax实现商品列表页到详情页的跳转
js + ajax实现商品列表页到详情页的跳转
|
2月前
|
前端开发 JavaScript
从0到1:用HTML、CSS和JavaScript构建一个简单的待办事项列表
从0到1:用HTML、CSS和JavaScript构建一个简单的待办事项列表
26 0
|
2月前
编程笔记 html5&css&js 015 HTML列表
编程笔记 html5&css&js 015 HTML列表
|
4月前
|
JavaScript 前端开发 小程序
element 订单列表中 实现多个倒计时(vue+js)
element 订单列表中 实现多个倒计时(vue+js)
|
4月前
|
前端开发 JavaScript
使用JavaScript创建一个待办事项列表
使用JavaScript创建一个待办事项列表
|
5月前
|
前端开发 JavaScript
如何使用 JavaScript 制作待办事项列表
如何使用 JavaScript 制作待办事项列表
46 1
|
2天前
|
存储 移动开发 JavaScript
学习javascript,前端知识精讲,助力你轻松掌握
学习javascript,前端知识精讲,助力你轻松掌握
|
8天前
|
JavaScript 前端开发 测试技术
学习JavaScript
【4月更文挑战第23天】学习JavaScript
13 1