【JavaScript】3.1 项目实践:制作一个简单的网页应用

这篇具有很好参考价值的文章主要介绍了【JavaScript】3.1 项目实践:制作一个简单的网页应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


在此章节中,我们将学习如何使用JavaScript创建一个简单的网页应用。这将是一个待办事项列表应用,用户可以添加新的待办事项,标记已完成的事项,以及删除事项。通过这个项目,我们将学习如何使用JavaScript操作DOM,处理事件,以及使用localStorage进行数据存储。

项目需求

我们的待办事项列表应用需要满足以下需求:

  1. 用户可以在输入框中输入待办事项,然后点击添加按钮,将待办事项添加到列表中。
  2. 用户可以点击待办事项旁边的复选框,将待办事项标记为已完成。
  3. 用户可以点击待办事项旁边的删除按钮,将待办事项从列表中删除。
  4. 用户关闭浏览器后,待办事项列表的状态应该被保存下来,用户再次打开浏览器时,应该能看到之前的待办事项。

HTML结构

首先,我们需要创建HTML页面的基本结构。我们需要一个输入框,一个添加按钮,以及一个待办事项列表。

<!DOCTYPE html>
<html>
<head>
  <title>Todo List</title>
</head>
<body>
  <input id="todoInput" type="text" placeholder="What needs to be done?">
  <button id="addButton">Add</button>
  <ul id="todoList"></ul>
  <script src="app.js"></script>
</body>
</html>

在这个HTML文件中,我们有一个input元素用于输入待办事项,一个button元素用于添加待办事项,以及一个ul元素用于显示待办事项列表。我们还包含了一个外部的JavaScript文件app.js,这个文件将包含我们的应用逻辑。

JavaScript逻辑

接下来,我们需要编写JavaScript代码来实现应用的逻辑。我们首先需要获取HTML元素的引用,然后对这些元素进行操作。

var todoInput = document.getElementById('todoInput');
var addButton = document.getElementById('addButton');
var todoList = document.getElementById('todoList');

添加待办事项

我们需要监听添加按钮的点击事件。当点击事件发生时,我们创建一个新的待办事项,并添加到列表中。

addButton.addEventListener('click', function() {
  var todoText = todoInput.value; // 获取待办事项的文本
  todoInput.value = ''; // 清空输入框

  var todoItem = document.createElement('li'); // 创建一个新的li元素
  todoItem.textContent = todoText; // 设置li元素的文本

  var checkbox = document.createElement('input'); // 创建一个新的input元素
  checkbox.type = 'checkbox'; // 设置input元素的类型为checkbox
  todoItem.prepend(checkbox); // 将checkbox添加到li元素的前面

  var deleteButton = document.createElement('button'); // 创建一个新的button元素
  deleteButton.textContent = 'Delete'; // 设置button元素的文本
  todoItem.append(deleteButton); // 将button添加到li元素的后面

  todoList.append(todoItem); // 将li元素添加到列表中
});

在这个代码中,我们首先获取待办事项的文本,然后清空输入框。然后,我们创建一个新的li元素,并设置其文本。我们还创建了一个复选框和一个删除按钮,并添加到li元素中。最后,我们将li元素添加到列表中。

标记待办事项

我们需要监听复选框的点击事件。当点击事件发生时,我们将待办事项标记为已完成。

todoList.addEventListener('change', function(event) {
  if (event.target.type === 'checkbox') {
    var checkbox = event.target;
    var todoItem = checkbox.parentElement;
    todoItem.style.textDecoration = checkbox.checked ? 'line-through' : 'none';
  }
});

在这个代码中,我们监听了列表的change事件。当复选框的状态改变时,change事件会被触发。我们检查事件的目标是否是复选框,如果是,我们获取复选框和其父元素(即li元素),然后根据复选框的状态来修改li元素的样式。

删除待办事项

我们需要监听删除按钮的点击事件。当点击事件发生时,我们将待办事项从列表中删除。

todoList.addEventListener('click', function(event) {
  if (event.target.tagName === 'BUTTON') {
    var button = event.target;
    var todoItem = button.parentElement;
    todoList.removeChild(todoItem);
  }
});

在这个代码中,我们监听了列表的click事件。当删除按钮被点击时,click事件会被触发。我们检查事件的目标是否是按钮,如果是,我们获取按钮和其父元素(即li元素),然后从列表中删除li元素。

保存待办事项

我们需要使用localStorage来保存待办事项的状态。当添加、标记或删除待办事项时,我们需要更新localStorage。

首先,我们需要在页面加载时,从localStorage中读取待办事项的状态,并更新列表。

window.addEventListener('load', function() {
  var todos = JSON.parse(localStorage.getItem('todos')) || [];
  for (var i = 0; i < todos.length; i++) {
    var todo = todos[i];
    createTodoItem(todo.text, todo.completed);
  }
});

在这个代码中,我们监听了load事件。当页面加载时,我们从localStorage中读取待办事项的状态,然后用这些状态来创建待办事项。

然后,我们需要在添加、标记或删除待办事项时,更新localStorage。

function updateLocalStorage() {
  var todos = [];
  var todoItems = todoList.children;
  for (var i = 0; i < todoItems.length; i++) {
    var todoItem = todoItems[i];
    var text = todoItem.textContent;
    var completed = todoItem.querySelector('input').checked;
    todos.push({ text: text, completed: completed });
  }
  localStorage.setItem('todos', JSON.stringify(todos));
}

在这个函数中,我们遍历待办事项列表,然后将每个待办事项的文本和完成状态保存到一个数组中。然后,我们将这个数组转换为JSON字符串,并保存到localStorage中。

我们需要在添加、标记或删除待办事项的事件处理函数中,调用这个函数。

addButton.addEventListener('click', function() {
  // ...
  updateLocalStorage();
});

todoList.addEventListener('change', function(event) {
  // ...
  updateLocalStorage();
});

todoList.addEventListener('click', function(event) {
  // ...
  updateLocalStorage();
});

总结

通过这个项目,我们学习了如何使用JavaScript来创建一个简单的网页应用。我们学习了如何操作DOM,处理事件,以及使用localStorage进行数据存储。这是一个很好的实践项目,通过它我们可以更好地理解和应用JavaScript的基本概念。

在接下来的章节中,我们将深入学习更多关于JavaScript的知识。希望你在学习的过程中能够找到乐趣,并且通过学习JavaScript,开启你的编程之旅!
【JavaScript】3.1 项目实践:制作一个简单的网页应用,javascript,JavaScript、JS,项目实战,简单网页文章来源地址https://www.toymoban.com/news/detail-753186.html

到了这里,关于【JavaScript】3.1 项目实践:制作一个简单的网页应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个简单的HTML网页(千与千寻电影) 大二学生网页设计与制作 电影主题网页制作

    HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 1 网页简介 :此作品为学生个人主页网页设计题材

    2024年02月06日
    浏览(39)
  • 制作一个简单HTML静态网页(HTML+CSS)

    🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (

    2024年02月03日
    浏览(59)
  • 制作一个简单HTML电影网页设计(HTML+CSS)

    HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 1 网页简介:此作品为学生个人主页网页设计题材

    2024年02月09日
    浏览(74)
  • 【谷歌扩展程序入门】简单制作一个查看网页结构的扩展程序

    在想看网页结构的时候一般会F12查看元素内容。 太麻烦了 还不简单方便。 扩展建立在诸如 HTML、JavaScript 和 CSS 之类的 Web 技术之上。它们在单独的沙盒执行环境中运行并与 Chrome 浏览器交互。 扩展允许您通过使用 API 修改浏览器行为和访问 Web 内容来“扩展”浏览器。 基于上

    2023年04月21日
    浏览(44)
  • 制作一个简单HTML中华传统文化网页(HTML+CSS)

    🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (

    2024年02月08日
    浏览(50)
  • 制作一个简单HTML个人网页网页(HTML+CSS)大话西游之大圣娶亲电影网页设计

    HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ❤ 【作者主页——🔥获取更多优质源码】 ❤ 【学

    2024年02月04日
    浏览(42)
  • 简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作

    常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目

    2024年02月09日
    浏览(45)
  • 制作一个简单HTML校园网页(HTML+CSS)学校网站制作 校园网站设计与实现

    🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作

    2024年01月16日
    浏览(41)
  • 制作一个简单HTML传统端午节日网页(HTML+CSS)7页 带报告

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 传统春节网页设计 | 圣诞节节日发展 | 中秋 | 端午传统节日习俗庆祝 | 地区特色 | 网站模板 | 等网站的设计与制 | HTML期末大学生网页设计作业 HTML:结构 CSS:样式

    2024年02月09日
    浏览(41)
  • 制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面

    👨‍🎓静态网站的编写主要是用 HTML DⅣV+ CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉导航栏、鼠标划过效果等知识点,学生网页作业源码,制作水平

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包