设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 128|回复: 14

HTML中表格动态添加_动力节点Java学院整理

[复制链接]

1

主题

55

回帖

133

积分

注册会员

积分
133
发表于 2024-4-20 10:30:48 | 显示全部楼层 |阅读模式
废话不多说了,直接给大家贴代码了,具体代码如下所示:
  1. <html>  
  2.     <head><title>Table</title></head>  
  3.     <body>  
  4.         <table border="1">  
  5.             <thead>  
  6.                 <tr>  
  7.                     <td>First Name</td>  
  8.                     <td>Last Name</td>  
  9.                     <td> </td>  
  10.                 </tr>  
  11.             <thead>  
  12.             <tbody id="tb">  
  13.                 <tr id="1st">  
  14.                     <td>张</td>  
  15.                     <td>三</td>  
  16.                     <td><input type="button" value="Add" onclick="add()">   
  17.                     <input type="button" value="Del" onclick="del(this)"></td>  
  18.                 </tr>  
  19.             </tbody>  
  20.         </table>  
  21.     </body>  
  22. </html>  
  23. <script>  
  24.     function add() {  
  25.         var trObj = document.createElement("tr");  
  26.         trObj.id = new Date().getTime();  
  27.         trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'> <input type='button' value='Del' onclick='del(this)'></td>";  
  28.         document.getElementById("tb").appendChild(trObj);  
  29.     }  
  30.     function del(obj) {  
  31.         var trId = obj.parentNode.parentNode.id;  
  32.         var trObj = document.getElementById(trId);  
  33.         document.getElementById("tb").removeChild(trObj);  
  34.     }  
  35. </script>   
复制代码
     上面的代码中,首先在body中构造了一个table,为了方便后续的操作,我们给table添加了thead 和 tbody 标签,thead标签标示的是表格头,tbody标签标示的是表格主体。
      示例中的表格,共有三列,第一列 first name,第二列 last name,第三列为操作列。
      操作列中,包含两个操作,一个是给表格添加行,一个是删除当前行。添加行和删除行的操作分别绑在两个按钮上,点击按钮时,触发相应的添加行/ 删除行 操作。
添加行方法
  1. function add() {  
  2.         var trObj = document.createElement("tr");  
  3.         trObj.id = new Date().getTime();  
  4.         trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'> <input type='button' value='Del' onclick='del(this)'></td>";  
  5.         document.getElementById("tb").appendChild(trObj);  
  6.     }  
复制代码
第一行,创建tr元素,即创建一个表格行。
第二行,
  1. trObj.id = new Date().getTime();
复制代码
给改行添加id 属性,并给属性赋值,取当前系统的毫秒数,这个主要是删除的时候需要。
第三行,
  1. trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'>
复制代码
  1. <input type='button' value='Del' onclick='del(this)'></td>
复制代码
"; 给表格行赋值,通过innerHTMML属性,设置<tr>标签和</tr> 标签间的html代码内容,也就是要添加的行内容。
第四行,
  1. document.getElementById("tb").appendChild(trObj);
复制代码
将创建好的表格行添加到表格主体中。
删除行方法
  1. function del(obj) {  
  2.     var trId = obj.parentNode.parentNode.id;  
  3.     var trObj = document.getElementById(trId);  
  4.     document.getElementById("tb").removeChild(trObj);  
  5. }
复制代码
删除方法中传递了一个参数,在添加行方法中,我们可以看到删除方法del 中传递了this参数,页面代码中的this指代的是当前的HTML元素,即this所在的<input >域。
第一行,
  1. var trId = obj.parentNode.parentNode.id
复制代码
; 获取当前元素的父节点的父节点的id,即要删除的行的id 。
第二行,
  1. var trObj = document.getElementById(trId);
复制代码
获取要删除的行元素。
第三行,
  1. document.getElementById("tb").removeChild(trObj);
复制代码
在表格主体中删除该行。
瑕疵
上面的代码基本实现了动态给表格增加行和删除行的功能,但是代码还有瑕疵,主要有这么两点:
1  表格在增加行前和增加行后,表格宽度发生变化
增加行前

增加行后

增加行后,表格列变宽了
2  浏览器默认打开的页面中文出现乱码

需要 设置字符编码修改页面编码格式后才能正常显示

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1

主题

16

回帖

47

积分

新手上路

积分
47
发表于 2024-4-24 12:22:09 | 显示全部楼层
好用好用

1

主题

58

回帖

138

积分

注册会员

积分
138
发表于 2024-5-21 18:21:55 | 显示全部楼层
666666666666666666

1

主题

49

回帖

117

积分

注册会员

积分
117
发表于 2024-6-21 11:36:59 | 显示全部楼层
谢谢你的提醒,我会注意的。
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:13
  • 最近打卡:2024-05-10 17:32:55

4

主题

53

回帖

208

积分

中级会员

积分
208
发表于 2024-6-27 09:55:28 | 显示全部楼层
你的信息来源是?我想了解更多。

1

主题

85

回帖

217

积分

中级会员

积分
217

热心会员付费会员

发表于 2024-7-3 19:34:30 | 显示全部楼层
这个话题很有趣,我想多了解一些

2

主题

49

回帖

143

积分

注册会员

积分
143
发表于 2024-8-20 05:06:39 | 显示全部楼层
嘎嘎嘎嘎嘎嘎嘎

2

主题

54

回帖

154

积分

注册会员

积分
154
发表于 2024-8-24 18:38:44 | 显示全部楼层
谢谢你的提醒,我会注意的。

1

主题

59

回帖

141

积分

注册会员

积分
141
发表于 2024-9-2 02:28:54 | 显示全部楼层
顶一个,观点非常中肯!

1

主题

33

回帖

90

积分

注册会员

积分
90
发表于 2024-10-6 06:47:01 | 显示全部楼层
这个话题很有趣,我想多了解一些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 12:09 , Processed in 0.107053 second(s), 28 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表