前端入门(五)之练习表格的增删改查

 一、html代码:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表格的增删改查</title><style>table{width:100%; /* 与浏览器同宽 */border-collapse: collapse; /*合并小单元格,使不留缝隙*/margin-top: 8px; /*与上面拉开间距*/}th,td{border:1px solid #ddd;text-align: center; /*居中显示*/padding: 8px; /*使空间大些*/}th{background-color: #ddd;}button{margin-left: 5px;}</style>
</head><body><h1 style="text-align:center">表格的增删改查</h1><button onclick='addRow()'>新增数据</button><table id="table"><tr><th>姓名</th><th>联系方式</th><th>操作</th></tr><tr><td>小美</td><td>18616416349</td><td><button onclick="editRow(this)">编辑</button><button onclick="deleteRow(this)">删除</button></td></tr></table><!-- 引入js文件 --><script src="js\table.js"></script> 
</body></html>

 二、js代码:

绑定->获取->增加 / 删除 / 修改

1、绑定事件

在button中添加属性: οnclick='addRow()'

2、获取节点

let table=document.getElementById('table')

let row=button.parentNode.parentNode

3、操作

(1)增加

获取插入行:let length=table.rows.length

                      let newRow=table.insertRow(length)

插入列单元:let nameCol=newRow.insertCell(0)

补充节点内容:nameCol.innerHTML='***'

(2)删除

由父节点删除:row.parentNode.removeChild(row)

注意:row.parentNode是tbody,而不是table

(3)修改

let name=row.cells[0]  //这里name是节点,所以下面要用innerHTML,而不能直接用name

let inputName=prompt("请输入名字:")

if(inputName)

{name.innerHTML=inputName;}

两种弹窗:

alert(显示信息):消息框,只显示信息

prompt(获取用户输入):带有输入框的对话框,有返回值(点击取消或关闭,返回null)

//新增数据函数
function addRow(){//1、去html文档的对应的按钮那里绑定事件 onclick=addRow()//2、获取表格标签节点,用tagname得到的是一个数组,所以用idlet table=document.getElementById('table');//3、插入行: 先获取插入的位置let length=table.rows.length;//console.log(length); 现有2行:第0行,第1行;插入的就是第2行//然后插入行节点let newRow=table.insertRow(length); //会返回当前插入的节点// console.log(newRow);// newRow.innerHTML='123'; innerHTML不是方法,而是属性//4、在新增的行中插入列节点对象let nameCol=newRow.insertCell(0); //插入新的小单元格,默认与表格的其他单元格对齐let phoneCol=newRow.insertCell(1);let actionCol=newRow.insertCell(2);//然后修改节点内容nameCol.innerHTML='未命名';phoneCol.innerHTML='无联系方式';actionCol.innerHTML='<button onclick="editRow(this)">编辑</button><button onclick="deleteRow(this)">删除</button>'//单双引号要注意' "" '
}//删除数据函数
function deleteRow(button){//1、去html文档的对应按钮那里绑定事件 onclick=deleteRow()//  console.log(button);->不可以写this,因为这里的函数属于删除button的外部了//2、获取当前行节点: 父节点的父节点let row=button.parentNode.parentNode;console.log(row);//3、删除行(不能自己删除自己,得由父节点来删)row.parentNode.removeChild(row);
}//编辑数据函数
function editRow(button)
{//1、绑定事件//2、获取当前行节点let row=button.parentNode.parentNode;//3、修改内容let name=row.cells[0]; //cells不是函数,用中括号;用小括号的是函数let phone=row.cells[1];let inputName=prompt("请输入名字:");let inputPhone=prompt("请输入联系方式:");if(inputName) //判断输入不为空时,修改值{name.innerHTML=inputName;}if(inputPhone){phone.innerHTML=inputPhone;}
}

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

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

相关文章

【深度学习】起源:人脑的神经结构

文章目录 睁眼看世界&#xff0c;倾耳听人间脑子&#xff0c;是个好东西&#xff01;眼睛成像其它身体感触系统脑子&#xff1a;我很忙的&#xff01;脑细胞&#xff1a;脑子里的打工人生物神经元——结构生物神经元——人脑的运算单位 人脑的深度学习总结 睁眼看世界&#xff…

项目名称:C语言在线学习平台(README)

项目介绍 本项目是一个基于 SpringBoot 和 Vue 的在线学习平台&#xff0c;旨在为用户提供一个方便、高效的学 习环境。 该平台包括课程教学大纲、主讲教师介绍、教学课件及视频展示、作业管理和题库管理等功 能。 技术栈 后端&#xff1a;SpringBoot Mybatis Mysql 前端&…

RHCE(免密登录+web服务器)之小试牛刀

1、配置linux客户端免密登录服务端linux主机的root用户 2、配置web服务器&#xff0c;当访问网站www.haha.com时显示&#xff1a;haha 3、配置web服务器&#xff0c;当访问网站www.xixi.com/secret/显示&#xff1a;this is secret 本实验使用RHEL9.3和Rocky linux8操作系统 RH…

【Linux 15】进程间通信的方式 - 管道

文章目录 &#x1f308; 一、管道介绍&#x1f308; 二、匿名管道⭐ 1. 匿名管道的概念⭐ 2. 匿名管道的创建⭐ 3. 匿名管道的本质⭐ 4. 匿名管道的使用⭐ 5. 匿名管道的特点⭐ 6. 匿名管道的大小 &#x1f308; 三、命名管道⭐ 1. 命名管道的概念⭐ 2. 命名管道的创建⭐ 3. 命…

通讯录管理系统(C语言)

需求及功能分析 本系统主要划分为8个子系统&#xff0c;如下图所示。 增加联系人模块删除联系人模块查找联系人模块插入联系人模块保存联系人模块加载联系人模块显示联系人模块退出模块 具体代码 #include <stdio.h> #include <string.h> #include <stdlib…

NLP专业术语及工具【hanlp、jiolp】

NLP专业术语 缩写术语中文描述tokTokenization分词将文本切分成独立的语义单位&#xff0c;通常是单词或标点符号等。posPart-of-Speech Tagging词性标注每个单词标注语法类别&#xff0c;例如名词、动词、形容词等。nerNamed Entiy Recognition命名实体识别识别文本中的专有名…

前端八股文 $set

为什么会有$set vue2中对数组中新增的属性是监听不到的 如图 vue 插件中有但是 视图中没有刷新 解决方法 解决就是 $set() 就是在数组中新增属性的时候可以重新渲染视图 具体的写法 写法 就是 第一个 是在那个对象上新增 第二个参数 是新增的属性 第三个参数是 新增的属性…

R语言画散点图-饼图-折线图-柱状图-箱线图-等高线图-曲线图-热力图-雷达图-韦恩图(三D)

R语言画散点图-饼图-折线图-柱状图-箱线图-等高线图-曲线图-热力图-雷达图-韦恩图&#xff08;三D&#xff09; 散点图使用 plotly 包示例解析效果 使用 scatterplot3d 包示例解析效果 饼图使用 plotly 包示例解析效果 使用 plotrix 包示例解析效果 折线图使用 plotly 包示例解…

在STM32嵌入式中C/C++语言对栈空间的使用

像STM32这样的微控制器在进入main函数之前需要对栈进行初始化。可以说栈是C语言运行时的必要条件。我们知道栈实际上是一块内存空间&#xff0c;那么这块空间都用来存储什么呢&#xff1f;有什么办法能够优化栈空间的使用&#xff1f; 栈空间保存的内容 栈是一个先入后出的数据…

mac无法清空废纸篓怎么办 mac废纸篓清空了如何找回 cleanmymac误删文件怎么恢复

废纸篓相当于“一颗后悔药”&#xff0c;用于临时存储用户删除的文件。我们从从Mac上删除的文件&#xff0c;一般会进入废纸篓中。如果我们后悔了&#xff0c;可以从废纸篓中找回来。然而&#xff0c;有时我们会发现mac无法清空废纸篓&#xff0c;这是怎么回事?本文将探讨一些…

【数据结构初阶】顺序表

hi&#xff0c;我们又见面啦&#xff01;happy~~~ 目录 前言&#xff1a; 一、线性表 二、顺序表 1、概念 2、与数组的区别 3、分类 4、动态顺序表的实现 SeqList.h 见下 SeqList.c 见下 test.c 见下 【注意】 ————————————— 致回不去的童年 ———…

前端调试技巧:动态高亮渲染区域

效果&#xff1a; 前端界面的渲染过程、次数&#xff0c;会通过高亮变化来显示&#xff0c;通过这种效果排除一些BUG 高亮 打开方式 F12进入后点击ESC&#xff0c;进入rendering&#xff0c;选择前三个即可&#xff08;如果没有rendering&#xff0c;点击橘色部分勾选上&…

swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面

实现的效果如果所示&#xff0c;顶部的关注用户列表可以左右滑动&#xff0c;中间的内容区域是可以上下滚动的效果&#xff0c;点击顶部的toolbar也可以切换关注/发现/附近不同页面&#xff0c;实现翻页效果。 首页布局 这里使用了NavigationStack组件和tabViewStyle样式配置…

zerotier安装后设备在线,两个设备无法ping通

来源 组 NAS&#xff0c; 软路由&#xff0c;内网穿透&#xff0c;远程访问&#xff0c;安装了 zerotier&#xff0c;无法ping通 方法 修改windows防火墙&#xff0c;Configure the Windows firewall to allow pings。 Search for and open Windows Firewall.Select Advance…

Node.js快速入门

Node.js 1、Node.js介绍与安装 官网&#xff1a;https://nodejs.cn/ 介绍&#xff1a;简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基…

Python | Leetcode Python题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution:def hIndex(self, citations: List[int]) -> int:left,right 0,len(citations)while left<right:# 1 防止死循环mid (leftright1)>>1cnt 0for v in citations:if v>mid:cnt1if cnt>mid:# 要找的答案在…

php并发提高20倍

opcache扩展 负责 opcode 缓存&#xff0c;专注于提高 PHP 代码的执行效率 apcu扩展 用于应用级数据缓存&#xff0c;专注于减少 I/O 操作和计算密集型任务的重复执行 大杀器swoole扩展 在实际应用中&#xff0c;Swoole 能够将 PHP 服务器的并发处理能力提升数十倍到数百倍…

哈希 -- 简单实现

在STL库中&#xff0c;有map和set两个关联式容器&#xff0c;这两个容器的底层都是以红黑树为底层。但是在后续的发展过程中&#xff0c;我们发现有些场景的数据不适合用红黑树进行存储&#xff0c;所以有人就发明了底层为哈希表的map和set,称为unordered_map 和 unordered_set…

C语言中的控制语句(一):if语句

文章目录 &#x1f34a;自我介绍&#x1f34a;if 的单分支语句&#x1f34a;a.if 单分支判断&#x1f34a;b.if单分支选择判断 &#x1f34a;if多分支语句&#x1f34a;if多分支选择判断 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&a…

web前端 React 框架面试200题(七)

面试题 185. 如果想要在组件第一次加载后获取该组件的dom元素&#xff0c;应当在以下哪个生命周期中进行 &#xff1f; A&#xff1a;componentDidUpdate() B&#xff1a;componentDidMount() C&#xff1a;componentWillUnmount() D&#xff1a;shouldComponentUpdate()答案&…