初学js---动态生成表格

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

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

时间: 2024-08-14 11:18:45

初学js---动态生成表格的相关文章

JS动态生成表格后 合并单元格

JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单元格操作,在做之前也试着google下,但是网上没有碰到这方面的需求,所以自己写了一个简单的.用文字描述需求太费劲了,如下图所示: 1. 没有合并之前的图如下: 2. 合并之后的图如下: 如上所示:是根据相邻的编号相同 进行单元格合并. 先看看实现后的效果再聊吧! JSfiddle链接地址如下: 点

js动态生成表格(原创)

原文:js动态生成表格(原创) 源代码下载地址:http://www.zuidaima.com/share/1571860936543232.htm 原生js实现,兼容各主流浏览器,提供生成表格,修改表格,验证合法性功能,可做学习参考 版权声明:本文为博主原创文章,未经博主允许不得转载.

js动态生成表格

下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 1 <table> 2 <tr> 3 <td>动态生成表格</td> 4 <td><input id="Cold" type="text" class="input" size="10" name="Num"/>行</td>

JS实现动态生成表格并向后端提交表格数据(一)

前段时间开发了一些web应用,其中就有涉及到动态的表格问题,因为很久没有写web前端了,所以在网上找了一些资料,发现很零碎,于是自己就根据找到的资料写了这么一个小功能,主要是供自己记忆,如果能帮到你很荣幸,如果你有更好的方法,也可以相互讨论,相互学习一下. 先来看一下需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 那么我们首先需要解决的是动态生成表格的问题 1.首先我们需要导入JS库文件. 1 <script src="../js

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

原文地址 需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 首先动态生成表格. 1.首先我们需要导入JS库文件.jQuery 2.然后在页面div中事先创建一个空白表格,可以根据需求而定,我这里是一个带表头的表格 <table border="0" style="text-align: center;" width="100%" id="myTable">

js动态生成数据列表

我们通常会使用table标签来展示数据内容,由于需要展示的数据内容是随时更换的,所以不可能将展示的数据列表写死在html写死在页面中,而是需要我们根据后台传来的数据随时更换,这个时候就需要我们使用js来动态生成表格. 首先我们需要先写好页面的样式. html部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; chars

js动态创建表格------Day59

刚刚不知道怎么回事,CSDN博客一直打不开,就在博客园完成了今天的记录,结果临关机,登录了下,发现又好了,就再多花个几分钟转下吧,也不管究竟在意的是什么了,权当强迫症了... 前几天记录了动态的添加一行一列:insertRow()和insertCell();动态的删除一行一列:deleteRow()和deleteCell():选中一行:this的参数传递,这些都是实现的关键,但是这一切都建立在一个基础上:那就是存在一个表格.今天就来记录下动态建立表格的方法: 事实上在刚开始的时候,我只想到了一个

Extjs 动态生成表格

Extjs 动态生成表格 在web显示数据时,会遇到grid的列数和行数不确定的这种情况.如何来根据数据动态的创建表格呢?Extjs 的json data给我们带来了一个很好的比较简单的方法.  要创建一个grid需要确定它的列数,再根据数据的数量就可以确定行数了.  看到有人用过一种方法就是讲列的属性和数据一起放在json data里去,这样可以达到效果,但是不难发现,这样的话,就很难进行分页或者更新表格里的数据.  其实我们可以结合extjs官网上的那种固定列数的访问方法来动态生成表格.  

Android动态生成表格

最近刚刚学习完Android的五大布局,现在我们进一步深入学习,尝试做一个动态生成表格功能的例子 样式布局代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4

如何进行js动态生成option?如何实现二级连动?

何为二级连动? 首先要明白什么是二级连动!顾名思义,就是一个动,另外一个也跟着一起动 看下面的例子: 这里有一个"市级"的选择列表框,还有一个"县级"的选择列表框,如果"市级"的选择列表框中的值发现变化,那么会连带"县级"的列表框发生变化. function selectOrg(){         var selectNow = document.getElementById("city");