待办事项列表应用
功能要求:
- 显示当前所有待办事项。
- 可以添加新的待办事项。
- 可以将待办事项标记为已完成。
- 可以删除已完成的待办事项。
实现步骤:
创建HTML结构: 创建一个HTML文件来构建应用的基本结构,包括一个待办事项列表容器、一个输入框和一个按钮用于添加新任务。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Todo List App</title>
</head>
<body>
<h1>Todo List</h1>
<input type="text" id="taskInput" placeholder="Add a new task">
<button id="addButton">Add</button>
<ul id="taskList"></ul>
</body>
</html>
编写JavaScript代码: 使用JavaScript来实现应用的各项功能。
// 获取DOM元素
const taskInput = document.getElementById("taskInput");
const addButton = document.getElementById("addButton");
const taskList = document.getElementById("taskList");
// 待办事项数组
const todos = [];
// 添加待办事项函数
function addTodo() {
const taskText = taskInput.value.trim();
if (taskText !== "") {
todos.push({ text: taskText, completed: false });
taskInput.value = "";
renderTodos();
}
}
// 标记待办事项为已完成
function toggleTodo(index) {
todos[index].completed = !todos[index].completed;
renderTodos();
}
// 删除已完成的待办事项
function deleteCompleted() {
for (let i = todos.length - 1; i >= 0; i--) {
if (todos[i].completed) {
todos.splice(i, 1);
}
}
renderTodos();
}
// 渲染待办事项列表
function renderTodos() {
taskList.innerHTML = "";
todos.forEach((todo, index) => {
const taskItem = document.createElement("li");
taskItem.innerHTML = `
<input type="checkbox" ${todo.completed ? "checked" : ""}>
<span>${todo.text}</span>
`;
taskItem.querySelector("input").addEventListener("change", () => {
toggleTodo(index);
});
taskList.appendChild(taskItem);
});
}
// 添加按钮点击事件
addButton.addEventListener("click", addTodo);
// 初始化
renderTodos();
添加样式: 为应用添加一些基本的样式,使其更加美观和易于使用。你可以使用CSS来实现样式。
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 0;
padding: 0;
}
h1 {
margin-bottom: 20px;
}
input[type="text"] {
padding: 8px;
width: 60%;
border: 1px solid #ccc;
border-radius: 5px;
margin-right: 10px;
}
button {
padding: 8px 15px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
ul {
list-style: none;
padding: 0;
}
li {
display: flex;
align-items: center;
margin: 10px 0;
}
input[type="checkbox"] {
margin-right: 10px;
}
在这个项目中,我们创建了一个简单的待办事项列表应用。通过HTML、JavaScript和CSS的结合,我们实现了待办事项的添加、标记为已完成和删除功能。用户可以通过输入框添加新的任务,通过勾选复选框标记任务为已完成,通过点击按钮删除已完成的任务。整个过程中,JavaScript负责处理用户交互和更新页面显示,CSS则负责美化页面的外观。
通过这个例子,你可以看到如何使用JavaScript来实现一个功能完整的项目,并与HTML和CSS协同工作,从而构建一个简单但实用的应用。