29 项目实战之实现一个简单的Web应用
在上一篇中,我们已经搭建了项目环境,接下来我们将利用这个环境来实现一个简单的Web应用。这一部分的主要目标是让你亲身体验如何将JavaScript应用到实际的Web项目中,以及如何整合HTML和CSS来创建一个功能完整的网页。
应用功能简介
我们将创建一个简单的待办事项(To-Do List)应用。用户可以添加、查看和删除待办事项。这是一个经典的练手项目,可以帮助你理解基本的DOM操作、事件处理以及数据存储。
项目结构
在我们的项目根目录下,结构将如下所示:
/todo-app
├── index.html
├── style.css
└── app.js
index.html
:包含了应用的HTML结构。style.css
:用来美化我们的应用。app.js
:包含了我们的JavaScript逻辑。
1. 创建HTML结构
首先,在index.html
文件中,我们需要实现基本的HTML结构:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>待办事项应用</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>待办事项列表</h1>
<input type="text" id="taskInput" placeholder="输入待办事项">
<button id="addTaskButton">添加</button>
<ul id="taskList"></ul>
</div>
<script src="app.js"></script>
</body>
</html>
这里,我们创建了一个输入框用于输入待办事项,一个“添加”按钮以及一个用于显示待办事项的列表。
2. 添加CSS样式
在style.css
文件中,我们可以添加一些简单的样式,使界面更加美观:
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
.container {
max-width: 600px;
margin: auto;
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
text-align: center;
}
input[type="text"] {
width: 70%;
padding: 10px;
margin-top: 10px;
}
button {
padding: 10px;
margin-left: 10px;
}
ul {
list-style-type: none;
padding: 0;
}
li {
padding: 10px;
background: #e2e2e2;
margin: 5px 0;
display: flex;
justify-content: space-between;
}
li button {
background-color: red;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
这里我们通过 CSS 给待办事项应用设置了基本的风格,使其看起来更加美观。
3. 实现JavaScript逻辑
在app.js
文件中,我们将添加JavaScript代码以实现待办事项的添加和删除功能。
// 获取DOM元素
const taskInput = document.getElementById('taskInput');
const addTaskButton = document.getElementById('addTaskButton');
const taskList = document.getElementById('taskList');
// 添加待办事项
addTaskButton.addEventListener('click', function() {
const taskText = taskInput.value.trim();
if (taskText === '') {
alert('请输入待办事项内容');
return;
}
const li = document.createElement('li');
li.innerText = taskText;
// 创建删除按钮
const deleteButton = document.createElement('button');
deleteButton.innerText = '删除';
deleteButton.addEventListener('click', function() {
taskList.removeChild(li);
});
li.appendChild(deleteButton);
taskList.appendChild(li);
taskInput.value = ''; // 清空输入框
});
是什么在发生?
- 集成事件监听
addEventListener
:当用户点击“添加”按钮时,提取输入框中的内容。 - 创建新的
li
元素:为每个待办事项创建一个新的列表项。 - 删除功能:为每个待办事项添加一个删除按钮,以便用户能够删除不需要的待办事项。
4. 测试应用
现在是测试你的应用的时候了!在浏览器中打开index.html
文件,你应该能够看到待办事项列表的输入框、添加按钮和空的列表。试着添加一些待办事项,并查看它们是否能正常显示和删除。
小结
在本节中,我们实现了一个简单的待办事项Web应用,结合了HTML、CSS和JavaScript,为我们的项目搭建了基础功能。这一过程中的关键在于理解DOM操作和事件处理的基本概念。
在下一篇中,我们将讨论如何调试和优化我们的代码,以提高应用的性能和用户体验。希望您能继续关注这个系列教程,进一步深入学习JavaScript开发的乐趣!