动态生成表格并封装函数:

1.动态创建表头

  *通过createElement('table')创建一个表格标签——>通过createElement('thead')创建表头——>通过table.appendChild(thead')将表头包含到表格中;

    **同样的方法创建tr并将tr放到thead中

      ***再将表头数据依次放到表头:通过

将表头数据放到表头(theadData为表头的数据,函数的参数item为数据内容)

  将创建表头的方法封装成函数function creatHead(parent,headData)()这里的parent为装table的容器

2.动态创建tbody

    *通过createElement(‘tbody’)创建tbody并将其放到table中——>同样方法将数据放到tbody中

      **将创建tbody的方法封装成函数function creatBody(table,bodyData)(){}

3.进行删除操作

  *给每一行tr再追加一个td用来放删除的操作,这里放了一个a标签,注意要给a标签设置href:javaScript:void(0),使a标签点击后不跳转

    **由于删除操作是比较严肃的,在删除之前要给一个弹框确定是否删除,当确定要删除后从tbody中删除对应的tr

4.调用函数动态创建表格

  *由于生成表头和tbody的方法都进行了函数封装,现在只要再创建将生成表头和tbody的函数放在一起的生成完整表格的函数即可

  **使用时调用封装函数就可以了

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态封装表格</title>
<style type="text/css">
#box table{border-collapse: collapse; /*当有两条边框线时,只显示一条边框线*/
}
</style>
</head>
<body>
<div id="box"></div>
<script type="text/javascript">
//表中的数据项
var bodyData=[
{name:"黄文杰",subject:"语文",scoer:"90"},
{name:"张晓梅",subject:"化学",scoer:"96"},
{name:"李杰凯",subject:"英语",scoer:"80"},
{name:"易梦云",subject:"数学",scoer:"99"},
{name:"王小青",subject:"物理",scoer:"70"},
];
//定义表头内容
var headData=['姓名','科目','成绩','操作'];
var box=document.getElementById('box');//调用创建表格的函数
creatTable(box,headData,bodyData);
//定义创建表格的函数
function creatTable(parent,headData,bodyData){
var table=creatHead(parent,headData);    //调用创建表头的函数
creatBody(table,bodyData);    //调用创建数据项的函数

}
//定义创建表头的函数
function creatHead(parent,headData){
//动态生成table标签
var table=document.createElement('table');
//将table标签写入box的div中
parent.appendChild(table);
table.border='1px';
table.width='500px';
table.cellSpacing=0;
//动态生成表头中的thead标签
var thead=document.createElement('thead');
//将thead标签写入table
table.appendChild(thead);
//动态生成tr标签
var tr=document.createElement('tr');
//将tr标签写入thead标签
thead.appendChild(tr);
tr.style.height='35px';
tr.style.background='lightgray';
//表头遍历
headData.forEach(function(item){
//动态生成th标签
var th=document.createElement('th');
//将th标签写入th
tr.appendChild(th);
//将表头数据写入th中
th.innerHTML=item;
})
return table;
}function creatBody(table,bodyData){
/*设置数据行*/
var tbody=document.createElement('tbody');
table.appendChild(tbody);
//遍历数据
bodyData.forEach(function(item){
tr=document.createElement('tr');
tbody.appendChild(tr);
for(var key in item){    //将item这个对象的每一个属性赋给key
var td=document.createElement('td');
tr.appendChild(td);
td.innerHTML=item[key];}
/*操作的列*/
var td=document.createElement('td');
tr.appendChild(td);
var link=document.createElement('a');
link.href='javaScript:void(0)';
td.appendChild(link);
link.innerHTML='删除';/*删除操作*/
link.onclick=linkclick;})
function linkclick(){
//提示用户是否删除
var r=confirm('是否确认删除');
if(r){
//删除
//获取点击
var tr=this.parentNode.parentNode;
tbody.removeChild(tr);
}
}};</script>
</body>
</html>

转载于:https://www.cnblogs.com/ayayi-666/p/9392395.html

初学js---动态生成表格相关推荐

  1. js动态生成表格(原创)

    原文:js动态生成表格(原创) 源代码下载地址:http://www.zuidaima.com/share/1571860936543232.htm 原生js实现,兼容各主流浏览器,提供生成表格,修改 ...

  2. js动态生成表格【含合并单元格的表格】

    最近遇到需求,动态生成表格,类似Excel,支持合并单元格的表格,代码分享给大家~ 一.网上找到的简单生成表格的例子: 以下是生成规则表格m行*n列类似,可以直接打开HTML查看结果. <!DO ...

  3. 使用JS动态生成表格数据和分页显示

    根据录入的内容动态显示到页面,不需要通过数据库保存,这样子减轻服务器压力.同时如果数据过多,支持分页显示,这些数据到保存时可以一起提交到后台. 效果如下: js代码(要引入JQuery): <! ...

  4. php输出动态表格,PHP动态生成表格

    好文网为大家准备了关于PHP动态生成表格范文,好文网里面收集了五十多篇关于好PHP动态生成表格好文,希望可以帮助大家.更多关于PHP动态生成表格内容请关注好文网篇一:PHP生成静态网页的通用代码最近研 ...

  5. html指定表格行列书,js动态生成指定行数的表格

    下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 动态生成表格 行 效果如下图所示: 2.header中添加js代码 function table() ...

  6. JS实现动态生成表格并提交表格数据向后端 表格中数据转为json

    原文地址 需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 首先动态生成表格. 1.首先我们需要导入JS库文件.jQuery 2.然后在页面d ...

  7. js动态生成html表格

    刚在论坛上面逛的时候看到有人问html表格怎么动态生成,我回了一下发现有好多小伙伴追问- - 看来还是有很多人不会的啊,于是决定写个博来解救万千小伙伴于水火之中(mdzz) 首先我们要在html里面有 ...

  8. Extjs 动态生成表格

    在web显示数据时,会遇到grid的列数和行数不确定的这种情况.如何来根据数据动态的创建表格呢? Extjs 的json data给我们带来了一个很好的比较简单的方法. 要创建一个grid需要确定它的 ...

  9. django通过ajax请求接口返回多条数据,并动态生成表格,请求表单后将表格数据并入库

    一.最近在做接口相关的开发,需求是这样的,通过一个接口所需要传递的参数,调用接口后,处理接口响应的参数,返回多条数据,并动态生成表格,请求表单后将表格的数据入库,下面是我改过的代码,跟实际代码有些出入 ...

  10. js 动态生成html(js根据后台返回数据生成html页面中的table标签)(转义字符)

    js 动态生成html table标签中内容js生成 html代码 js代码 js 动态生成html 触发事件传参字符转义 table标签中内容js生成 html代码 <div><t ...

最新文章

  1. 在django中使用django_debug_toolbar
  2. stm32单片机实现多个闹钟_如何学习单片机:单片机都是相通的,一通百通
  3. 如何在VMware中安装Linux系统(带界面)~新手向
  4. Spring AOP源码解析——AOP动态代理原理和实现方式
  5. ssl2863-石子合并【dp练习】
  6. 【ZOJ - 2955】Interesting Dart Game(背包,结论,裴蜀定理,数论)
  7. 个人pkm软件 pim软件_个人申请软件著作权需要走哪些流程
  8. 三星mega2 android os,GALAXY MEGA2
  9. blob_buf,blobmsg内存图详解
  10. zabbix 搭建 mysql 连接报错
  11. API接口文档范文-API接口文档示例
  12. 2022 软件库APP源码前端 后端整套独立后台+搭建教程
  13. 锐捷校园网环境下设置统信UOS(Linux)自动连接网络
  14. 微信公众号访问本地服务器的方法
  15. Ballerina 1.0版增加了Java互操作性并以JVM为目标
  16. 操作系统——并发相关问题
  17. MLOps极致细节:15. Azure ML数据集的上传(Azure Workspace DataStore Upload)与注册(Azure Dataset Register)
  18. 尚学堂Java第五章所有题目
  19. 观李筱懿视频号有感:不要让所谓的大度变成对自己的道德绑架
  20. repeat()方法的使用

热门文章

  1. 每天数千个漏洞被公开 选什么工具能让漏洞追不上我?RASP介绍
  2. RTC与WebRTC有什么区别
  3. bzoj3039 玉蟾宫【单调栈】
  4. PMP备考大全:经典题库(6月第2周)
  5. ABAP设置默认打印机
  6. 使用网络模拟器 Packet Tracer和交换机的端口配置与管理及Telnet远程登陆配置
  7. Xilium.CefGlue与CEF库的版本匹配关系
  8. Java开发面试简历这么写,命中率达70%
  9. 从字符串中提取IP子串(C语言)
  10. 任正非谈成功秘诀:28年只对准一个城墙口冲锋