第8次修改的备忘录:暂时还没有做本地保存

第8次修改的html备忘录

 

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>与妖为邻的备忘录</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {display: grid;align-items: center;justify-content: center;}.container-left {background: rgb(216, 195, 157);}.container-left textarea {min-height: 30px;outline: none;font-size: 16px;margin-bottom: 5px;border-radius: 5px;padding: 0 5px;border: 1px solid rgb(69, 126, 123);}.container-left button {border-radius: 5px;font-size: 15px;padding: 1px 5px;margin: 1px 5px;cursor: pointer;}.container-right {overflow-y: auto;background: rgb(160, 240, 178);}.container-right table {cursor: default;border: 1px solid #000;}.container-right table {width: 500px;text-align: center;margin: 2px 1px;}.container-right table thead td {color: #fff !important;background: rgb(73, 187, 58);}.container-right table tr td {font-size: 18px;color: #000;border: 1px solid #000;font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;}.container-right table tr td button {cursor: pointer;}.container-right table tr td input {text-align: center;}.delete {color: #fff;background-color: #f00;}.change {background-color: #0f0;}.container-right table tr td span {cursor: pointer;text-align: center;display: inline-block;border-radius: 5px;background-color: antiquewhite;}.container-right table tr td span:hover {color: #fff;background-color: rgb(172, 163, 152);}</style>
</head>
<body><h1 align="center"><dfn>备忘录</dfn>(memorandum)</h1><div class="container"><div class="container-left"><form action="#" method="GET"><textarea rows="1" cols="50%" placeholder="请输入备忘内容"></textarea><button type="button" class="btn">添加</button><button type="reset">重置</button></form></div><div class="container-right"><!--cellpadding 是边框与其内容的间隙大小;cellspacing 是边框与边框之间的间隙大小;--><table cellpadding="0" cellspacing="0"><thead><td>序号</td><td>备忘信息</td><td>移除</td><td>修改</td><td>移动</td></thead><tbody></tbody></table></div></div><script>/*********************一个html提示弹窗无需点击的函数 ******************************/function displayAlert(type, data, time) {var a = document.createElement("a");if (type == "info") {a.style.backgroundColor = "#990000";}a.id = "a";a.style.position = "absolute";a.style.width = "420px";a.style.height = "60px";a.style.marginLeft = "-100px";a.style.marginTop = "-30px";a.style.left = "30%";a.style.top = "15%";a.style.color = "white";a.style.fontSize = "25px";a.style.borderRadius = "20px";a.style.textAlign = "center";a.style.lineHeight = "60px";if (document.getElementById("a") == null) {document.body.appendChild(a);a.innerHTML = data;setTimeout(function () {document.body.removeChild(a);}, time);}}/********************* //TODO 1.获取元素 ******************************/// 获取存放数据位置的tbody标签var tbody = document.querySelector('tbody');// 获取输入数据区域的textarea的标签var inputs = document.querySelectorAll('.container-left textarea');// 获取触发添加功能的button按钮var btn = document.querySelector('.btn');// 设定序号初始值var number = 0;// 判断记录值var flag = true;// 定义空对象,存放输入数据var message = {};// 定义空数组,存放对象var students = [];/********************************** // TODO 2.添加功能 *********************************************/// 给button按钮添加点击事件btn.addEventListener('click', function () {// 输入框非空判断if (inputs[0].value != '' && inputs[0].value != null) {// 将输入的数据存入数组message = {"number": number,'id': inputs[0].value};// 调用去重函数clearMess();// 启用自动数据重置// reset.click();} else {// 空数据提示// alert("数据输入不完全,请重新输入数据");displayAlert("info", "数据为空,请重新输入数据!", 1500);};});/**********************************   //TODO3 去重函数 *********************************************/function clearMess() {if (students.length > 0) {for (var i = 0; i < students.length; i++) {if (students[i].id == message.id) {displayAlert("info", "信息重复,请重新输入!", 1500);// alert("键值重复,请重新输入");return false;};};students.push(message);} else {students.push(message);};//  调用回显函数innerMess();};/**********************************   //TODO4 回显函数 *********************************************/function innerMess() {// 生成表格内容区域if (flag) {// 创建新的tr节点var trs = document.createElement('tr');tbody.appendChild(trs);// 每次创建一个tr,number+1number++;// 创建一个td,接收number值,赋予序号的含义var tdNum = document.createElement('td');tdNum.classList.add('nums');tdNum.innerHTML = number;trs.appendChild(tdNum);// 将输入框的值赋予到新创建的tdfor (var i = 0; i < inputs.length; i++) {var tds = document.createElement('td');tds.innerHTML = inputs[i].value;trs.appendChild(tds);};// 创建移除操作按钮 - 删除var deleteBtn = document.createElement('td');deleteBtn.innerHTML = `<button class="delete" onclick='deleteMess(this)'>删除</button>`;trs.appendChild(deleteBtn);// 创建修改操作按钮 - 修改var changeBtn = document.createElement('td');changeBtn.innerHTML = `<button class="change" onclick='changeMess(this)'>修改</button>`;trs.appendChild(changeBtn);// 创建数据移动按钮 - 移动var doingBtn = document.createElement('td');doingBtn.innerHTML = `<span onclick="upMess(this)">↑</span><span onclick="downMess(this)">↓</span>`;trs.appendChild(doingBtn);};};/*****************************************    //TODO 删除函数****************************************************************/function deleteMess(element) {// 获取到当前标签的序号var deleteIndex = element.parentNode.parentNode;if (confirm("是否确认操作")) {//  先删除标签deleteIndex.remove();// 再根据序号删除数组中的对应数据for (var i = 0; i < students.length; i++) {if (students[i].id == deleteIndex.children[1].innerHTML) {students.splice(i, 1);}};displayAlert("info", "删除成功!", 1500);// alert('操作成功');var nums = document.querySelectorAll('.nums');// 删除行的同时,控制删除行以外行数序号的删减var index;if (nums.length > 0) {for (var i = 0; i < nums.length; i++) {index = i;var nums = document.querySelectorAll('.nums');nums[index].innerHTML = index + 1;};};console.log(students);number--;};};/***************************** TODO 修改函数****************************************************************/function changeMess(element) {var tds2 = element.parentNode.parentNode.children;for (var i = 1; i < tds2.length - 3; i++) {inputs[i - 1].value = tds2[i].innerHTML;// tds2[i].innerHTML = `<input type="text" value='${tds2[i].innerText}'/>`;};//  element.parentNode.innerHTML = `<button class="change" onclick='updateMess(this)'>更新</button>`;};/*****************  //TODO 更新函数 ****************function updateMess(element) {var tdsInp = document.querySelectorAll('table input');var firstNumber = parseInt(element.parentNode.parentNode.firstElementChild.innerHTML);var tds3 = element.parentNode.parentNode.children;students.splice(firstNumber - 1, 1);for (var i = 0; i < students.length; i++) {if (students[i].id == tdsInp[1].value) {alert("键值重复,请重新输入");return false;};};var message2 = {"number": firstNumber - 1,"id": tdsInp[0].value};students.push(message2);for (var i = 0; i < tdsInp.length; i++) {tds3[i + 1].innerHTML = tdsInp[i].value;};inputs[3].removeAttribute('disabled');reset.click();element.parentNode.innerHTML = `<button class="change" onclick='changeMess(this)'>修改</button>`;};*//*****************************    // TODO 数据位置向上移动函数****************************************************************/function upMess(element) {var trsUp = document.querySelectorAll('tbody tr');if (element.parentNode.parentNode.children[0].innerHTML == 1) {displayAlert("info", "移动失败,数据无法再向上移动!", 1500);} else {for (var i = 1; i <= 1; i++) {var temps = element.parentNode.parentNode.children[i].innerHTML;element.parentNode.parentNode.children[i].innerHTML = element.parentNode.parentNode.previousElementSibling.children[i].innerHTML;element.parentNode.parentNode.previousElementSibling.children[i].innerHTML = temps;};};};/*****************************    // TODO 数据位置向下移动函数****************************************************************/function downMess(element) {if (element.parentNode.parentNode.children[0].innerHTML == students.length) {displayAlert("info", "移动失败,数据无法再向下移动!", 1500);} else {for (var i = 1; i <= 1; i++) {var temps2 = element.parentNode.parentNode.children[i].innerHTML;element.parentNode.parentNode.children[i].innerHTML = element.parentNode.parentNode.nextElementSibling.children[i].innerHTML;element.parentNode.parentNode.nextElementSibling.children[i].innerHTML = temps2;};};};</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414723.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“家庭记账神器 - 记录收支明细,轻松管理家庭财务“

你是否经常因为家庭开销的琐碎而感到困扰&#xff0c;不知道如何记录收支明细&#xff0c;让家庭财务更加清晰&#xff1f;现在&#xff0c;有了我们的家庭记账神器&#xff0c;这些烦恼全部消失&#xff01;无论你是在处理日常开销、规划家庭预算还是整理财务数据&#xff0c;…

GAN在图像数据增强中的应用

在图像数据增强领域&#xff0c;生成对抗网络&#xff08;GAN&#xff09;的应用主要集中在通过生成新的图像数据来扩展现有数据集的规模和多样性。这种方法特别适用于训练数据有限的情况&#xff0c;可以通过增加数据的多样性来提高机器学习模型的性能和泛化能力。 以下是GAN在…

Linux--磁盘与文件系统

目录 1.什么是文件系统 2.磁盘 2.1什么时磁盘 2.2磁盘的物理存储结构 2.3磁盘的逻辑抽象结构 3.磁盘文件系统&#xff08;EXT2&#xff09; inode Table(i结点表) Data Block inode Bitmap(inode位图) Block Bitmap(块位图) 在Linux如何删除文件 Group Descriptor Ta…

卷积和滤波对图像操作的区别

目录 问题引入 解释 卷积 滤波 问题引入 卷积和滤波是很相似的&#xff0c;都是利用了卷积核进行操作 那么他们之间有什么区别呢&#xff1f; 卷积&#xff1a;会影响原图大小 滤波&#xff1a;不会影响原图大小 解释 卷积 我们用这样一段代码来看 import torch.nn as …

贝塞尔曲线(Bezier Curve)原理、公式推导及matlab代码实现

目录 参考链接 定义 直观理解 公式推导 一次贝塞尔曲线&#xff08;线性公式&#xff09; 二次贝塞尔曲线&#xff08;二次方公式&#xff09; 三次贝塞尔曲线&#xff08;三次方公式&#xff09; n次贝塞尔曲线&#xff08;一般参数公式&#xff09; 代码实现 参考链接…

20. 从零用Rust编写正反向代理,四层反向代理stream(tcp与udp)实现

wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器&#xff0c;四层TCP/UDP转发&#xff0c;内网穿透&#xff0c;后续将实现websocket代理等&#xff0c;会将实现过程分享出来&#xff0c;感兴趣的可以一起造个轮子 项目地址 gite: https:…

GPT应用程序上线注意的问题

在将GPT应用程序上线之前&#xff0c;有一些重要的问题需要注意&#xff0c;以确保应用程序的成功运行、用户满意度和合规性。以下是一些建议&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 合规性和…

如何查看iPad尺寸,这里提供两种办法

构成iPad尺寸的因素包括屏幕大小、宽度、深度和高度。由于iPad有不同的尺寸&#xff0c;你可以毫不费力地测量自己的尺寸。 苹果的iPad是当今最畅销的小工具之一。它是笔记本电脑的绝佳替代品&#xff0c;非常适合完成工作、看电影和上网。然而&#xff0c;出于各种目的&#…

STM32-调用 vTaskStartScheduler API 后出现 HardFault

STM32 移植 FreeRTOS 后调用 vTaskStartScheduler() 后出现 HardFault 异常。 原因分析&#xff1a; FreeRTOS 配置头文件 FreeRTOSConfig.h 中与中断有关的配置和通过系统接口 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) 设置的中断分组冲突。 /* The lo…

Spring Security工作原理(一)

过滤器 Spring Security的Servlet支持是基于Servlet过滤器的&#xff0c;因此首先了解过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求处理程序的典型分层结构。 处理客户端发送的请求时&#xff0c;容器创建一个FilterChain&#xff0c;其中包含Filter实例和Servlet&a…

【C++】:STL序列式容器list源码剖析

一、list概述 总的来说&#xff1a;环形双向链表 特点&#xff1a; 底层是使用链表实现的&#xff0c;支持双向顺序访问 在list中任何位置进行插入和删除的速度都很快 不支持随机访问&#xff0c;为了访问一个元素&#xff0c;必须遍历整个容器 与其他容器相比&#xff0c;额外…

基于Python的Climate Indices库计算SPEI(标准化降水蒸散发指数)05—栅格SPEI的计算

热闹的尽头是孤寂&#xff0c;在虚浮的欢闹中保持自己&#xff0c;纷繁世间&#xff0c;可报期望者不过二三。 文章目录 前言1. 概述2.1 目的2.2 说明 2. 版本2.1 天津&#xff0c;2024年1月18日&#xff0c;Version1 3. 微信公众号GISRSGeography 一、数据1. 输入数据2. 输出…