JS实现简单的todoList(记事本)效果

下面我会给你讲解JS实现简单的todoList(记事本)效果的完整攻略。

1. 界面部分

首先,我们需要搭建好页面框架。可以使用HTML和CSS实现一个简单的布局,其中包括待办事项输入框、已完成事项展示区域、未完成事项展示区域等。

<body>
  <div id="app">
    <h1>Todo List</h1>
    <input id="new-todo" type="text" placeholder="请输入待办事项...">
    <div>
      <h2>未完成事项</h2>
      <ul id="incomplete-tasks">
      </ul>
    </div>
    <div>
      <h2>已完成事项</h2>
      <ul id="completed-tasks">
      </ul>
    </div>
  </div>
</body>

2. JS部分

接下来,我们需要使用JavaScript来实现功能。

添加新事项

const addButton = document.getElementById('add-button');
const taskInput = document.getElementById('new-todo');
const incompleteTasksList = document.getElementById('incomplete-tasks');

addButton.addEventListener('click', () => {
  if (taskInput.value) {
    incompleteTasksList.appendChild(createNewTaskElement(taskInput.value));
    taskInput.value = '';
  }
});

function createNewTaskElement(taskName) {
  const listItem = document.createElement('li');
  const checkBox = document.createElement('input');
  const label = document.createElement('label');
  const deleteButton = document.createElement('button');

  checkBox.type = 'checkbox';
  label.innerText = taskName;
  deleteButton.innerText = '删除';

  listItem.appendChild(checkBox);
  listItem.appendChild(label);
  listItem.appendChild(deleteButton);

  return listItem;
}

标记任务为已完成

const incompleteTasksList = document.getElementById('incomplete-tasks');
const completedTasksList = document.getElementById('completed-tasks');

incompleteTasksList.addEventListener('change', (event) => {
  const taskItem = event.target.parentElement;
  const checkBox = event.target;

  if (checkBox.checked) {
    completedTasksList.appendChild(taskItem);
  } else {
    incompleteTasksList.appendChild(taskItem);
  }
});

删除任务

const incompleteTasksList = document.getElementById('incomplete-tasks');
const completedTasksList = document.getElementById('completed-tasks');

incompleteTasksList.addEventListener('click', (event) => {
  if (event.target.tagName === 'BUTTON') {
    const taskItem = event.target.parentElement;
    taskItem.remove();
  }
});

completedTasksList.addEventListener('click', (event) => {
  if (event.target.tagName === 'BUTTON') {
    const taskItem = event.target.parentElement;
    taskItem.remove();
  }
});

3. 示例说明

示例一:添加新事项

用户在待办事项输入框中输入一条待办事项,点击添加按钮。输入框清空,并将待办事项添加到未完成事项展示区域中。

示例二:标记任务为已完成

用户点击某一未完成事项前面的复选框,该任务从未完成事项列表中移动到已完成事项列表中。

以上就是JS实现简单的todoList(记事本)效果的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现简单的todoList(记事本)效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • jQuery实现图片局部放大镜效果

    首先,我们需要明确几个概念:放大镜效果,鼠标移动事件以及坐标计算。 放大镜效果指的是鼠标悬停在图片上时,在某一区域内看到放大后的图片效果。鼠标移动事件指的是鼠标从一个点移动到另一个点的事件,坐标计算则是指根据鼠标位置计算图片区域的位置和大小。 具体实现步骤如下: 引入jQuery库,并在HTML文档中添加一个div,用于展示放大后的图片效果。 <scr…

    css 2023年6月10日
    00
  • jQuery EasyUI实现右键菜单变灰不可用效果

    实现右键菜单变灰不可用的效果,需要对jQuery EasyUI组件中的menu、menuitem进行操作。下面是具体的步骤: 1.在EasyUI中定义菜单 首先在HTML文件中定义一个菜单: <div id="myMenu" style="width: 120px;"> <div id="m…

    css 2023年6月10日
    00
  • 跟我学习javascript的prototype使用注意事项

    当使用JavaScript的面向对象编程时,prototype在实现继承和方法重载等方面起着关键作用。下面是跟我学习JavaScript的prototype使用注意事项的完整攻略。 什么是prototype? 在JavaScript中,每个对象都有一个prototype,原型链的顶端是Object.prototype对象。prototype对象定义了该对象的…

    css 2023年6月9日
    00
  • 图片溢出div问题的快速解决方法推荐

    以下是关于“图片溢出div问题的快速解决方法推荐”的完整攻略。 问题描述 在网页制作过程中,经常会遇到图片溢出div的问题,即图片的宽度或高度超出其父元素div的宽度或高度,在页面渲染时出现的错位、拉伸等问题。 解决方法 针对图片溢出div的问题,常见的解决方法有以下几种: 方法一:使用CSS的max-width属性 div img { max-width:…

    css 2023年6月10日
    00
  • css写菜单:简洁注释版

    下面是”css写菜单:简洁注释版”的完整攻略: 1. 选择菜单类型 首先,要选择菜单的类型,常见的菜单类型有水平菜单和垂直菜单两种。可以根据网站的布局和需求选择合适的菜单类型。 2. 准备 HTML 结构 在 HTML 文件中,我们通常使用<ul>和<li>标签来构建菜单,使用<a>标签作为链接。示例如下: <ul&…

    css 2023年6月9日
    00
  • firefox不显示border通过清除float便可解决

    要让问题更加清晰,我们先来分析一下具体的情况: 场景:在 Firefox 浏览器中使用 border-radius 给一个 div 添加圆角样式,但边框(border)不显示(无边框)。 原因:该元素的子元素采用了浮动(float)布局,并且没有被清除,导致父元素没有正常地包裹子元素,因此边框无法正常显示。 那么,如何解决这个问题呢? 一个简单而有效的解决方…

    css 2023年6月10日
    00
  • css实现右侧固定宽度 左侧宽度自适应

    要实现右侧固定宽度、左侧宽度自适应的效果,可以使用CSS中的float属性和盒模型的原理来实现。下面是具体的实现步骤: HTML结构的编写 首先,我们需要明确左右两侧元素的父容器。在父容器中,先写一个右侧的固定宽度的元素,再写一个左侧的自适应宽度的元素,可以使用div标签。此外,还可以考虑加上一个clearfix类,避免浮动元素的影响。 示例代码: <…

    css 2023年6月10日
    00
  • JavaScript实现通过滑块改变网页颜色

    如果想要通过滑块改变网页颜色,可以使用JavaScript实现。这个功能的实现步骤大概分为以下几个部分: 在HTML中添加滑块控件,并设置ID,用于JavaScript调用。 <input type="range" min="0" max="255" step="1" id…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部