JavaScript动态创建table表格

平时我们在用js去动态生成table表格的时候,都是一遍遍的去循环遍历数组中的字段,而在前端页面中表格多的时候就要写好多这样的代码,比较繁琐…

使用如下方法,直接调用即可生成table

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title>JavaScript动态创建table表格</title>
		<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
	</head>
	<body>
		<div class="col-lg-12">
			<table class="table table-bordered">
				<thead bgcolor="#55aaff">
					<tr>
						<th>序号</th>
						<th>姓名</th>
						<th>年龄</th>
					</tr>
				</thead>
				<tbody id="tb_tbody">

				</tbody>
			</table>
			<table class="table table-bordered">
				<thead bgcolor="#55aaff">
					<tr>
						<th>序号</th>
						<th>年龄</th>
						<th>姓名</th>
					</tr>
				</thead>
				<tbody id="tb_tbody2">

				</tbody>
			</table>
		</div>

		<script type="text/javascript">
			//生成数据
			let tableData = new Array();
			for (let i = 0; i < 10; i++) {
				let age = (Math.random() * 30).toFixed(0);
				tableData.push({
					index: (i + 1),
					name: '小明',
					age: age
				});
			};
			let keyData = ['index', 'name', 'age'];
			let keyData2 = ['index', 'age', 'name'];

			//调用函数
			createTable(tableData, keyData, 'tb_tbody');
			createTable(tableData, keyData2, 'tb_tbody2');


			//动态创建table表格函数
			function createTable(tableList, keyList, tbodyId) {
				let str = '';
				for (let i = 0; i < tableList.length; i++) {
					str += "<tr>";
					for (let j = 0; j < keyList.length; j++) {
						str += "<td>" + tableList[i][keyList[j]] + "</td>";
					};
				};
				document.querySelector(`#${tbodyId}`).innerHTML = str;
			};
			//createTable(tableList, keyList, tbodyId)函数接收三个参数,分别如下:
			//tableList:表格的json数据[{},{},{}]形式
			//keyList:表格数组里面每一个对象所包含的字段数组,即表格中每一列所展示的数据对应的字段
			//tbodyId:table表格中tbody的ID,注意,是tbody的ID,不是class
		</script>
	</body>
</html>

代码展示效果图如下:
在这里插入图片描述

使用时可将createTable函数块代码单独放在一个外部js文件中,然后再引入使用

需要注意的是,此方法仅适用于生成简单的table表格,如果需要那种合并单元格或创建复杂表格的,该方法就不行了

结语:觉得好用的话还请点个赞,动动各位看官的发财手。
如有问题欢迎在下方评论留言,感谢!!!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值