当前位置: 首页 > news >正文

Day42综合案例--学生信息表

<script>// 获取元素const uname = document.querySelector('.uname')const age = document.querySelector('.age')const gender = document.querySelector('.gender')const salary = document.querySelector('.salary')const city = document.querySelector('.city')const tbody = document.querySelector('tbody')// 获取带有name属性的元素,用于后面的表单验证const items = document.querySelectorAll('[name]')// 首先声明一个空数组,增删改与渲染都在这里面进行const arr = []// 1.录入模块// 1.1表单提交事件const info = document.querySelector('.info')info.addEventListener('submit', function (e) {// 表单事件点击后会跳转,要阻止这个默认行为e.preventDefault()// console.log(11)// 此处进行表单验证,不通过则不创建对象生成表格// 先遍历循环for (let i = 0; i < items.length; i++) {if (items[i].value === '') {return alert('输入的内容不能为空')}}// 创建新的对象const obj = {stuId: arr.length + 1,uname: uname.value,age: age.value,gender: gender.value,city: city.value,salary: salary.value}// console.log(obj)// 追加到数组里arr.push(obj)// console.log(arr)// 重置表单this.reset()render()})// 渲染函数function render() {// 清空之前的tbody,只对最新数组进行渲染tbody.innerHTML = ''// 遍历arr数组for (let i = 0; i < arr.length; i++) {// 生成tr(表格)const tr = document.createElement('tr')tr.innerHTML = `<tr><td>${arr[i].stuId}</td><td>${arr[i].uname}</td><td>${arr[i].age}</td><td>${arr[i].gender}</td><td>${arr[i].salary}</td><td>${arr[i].city}</td><td><a href="javascript:" data-id = ${i}>删除</a></td></tr>`// 追加元素tbody.appendChild(tr)}}// 3.删除操作tbody.addEventListener('click', function (e) {if (e.target.tagName == 'A') {// 得到当前的自定义属性 data - idconsole.log(e.target.dataset.id)// 删除arr里对应的数组arr.splice(e.target.dataset.id, 1)render()}})</script>

image

http://www.jsqmd.com/news/514268/

相关文章:

  • AI与Python在地球科学多源数据交叉融合中的前沿技术应用
  • 报错记录:springboot后端报错java.lang.IllegalArgumentException: Invalid character found in method name
  • 1118-Row size too large.The maximum row size for the used table type,not counting BLOBs,is 65535
  • 为M2LOrder服务配置内网穿透:实现本地开发环境的远程调试
  • Lattice3.10新手必看:从新建项目到下载程序的完整流程(附VScode编写技巧)
  • 从农业到地质:高光谱遥感数据集在不同领域的应用实例解析
  • 嵌入式函数返回值设计:0成功与错误分类工程实践
  • AI入门必看:从零开始掌握人工智能核心概念(附学习路线图)
  • Scratch编程等级考试1~4级真题解析与备考策略
  • 鸟类虚拟解剖实验平台
  • Nanbeige 4.1-3B快速部署:WSL2环境下Windows一键启动指南
  • 2026 Cinema 4D渲染引擎排名(50万+农场作业数据)+ C4D云渲染推荐
  • 含SVG的风电并网系统稳定性分析与优化
  • Android 禁止侧载将正式实施,需要等待 24 小时冷静期
  • Phi-3-vision-128k-instruct赋能STM32开发:嵌入式AI视觉应用快速原型设计
  • 永磁同步直线电机 PMLSM 矢量控制滑模控制 SVPWM 仿真模型探究
  • 直接上结论:更贴合论文写作全流程的AI论文工具,千笔·专业论文写作工具 VS speedai
  • 避坑指南:ESP32测WiFi信号强度(RSSI)和吞吐量,这几个参数设置错了等于白测
  • RS-485与 CAN电平特性分析与对比
  • 全球首个包含全工具链的运维智能体 x OpenClaw组合登场
  • ClawdBot惊艳效果:餐厅菜单照片→自动识别菜名/价格/辣度图标→生成双语点餐卡
  • 我的桌面氛围灯就靠它了:STM32F103C8T6 + PWM + 电容触摸,做一个能调亮度的迷你台灯
  • 毫米波雷达点云分割模型优化:基于PointNet的改进与性能突破
  • [特殊字符] 学生党必备!Steam游戏一键入库神器,白漂党狂喜
  • Pi0具身智能v1物流应用:自动化分拣机器人系统开发
  • SenseVoice ONNX量化模型部署教程:高效推理与低资源占用方案
  • MedGemma Medical Vision Lab环境部署:Ubuntu 22.04 + PyTorch 2.3 + CUDA 12.1配置详解
  • 2026年高并发压测工具实测推荐!
  • eNSP模拟器下华为交换机VLAN通信实验:从理论到实践的保姆级教程
  • 2026年苏州桦源电力品牌发电机出租,全功率机型随租随用 - 海棠依旧大