老师有个问题,困扰我一天了

老师有个问题,困扰我一天了

怎么动态生成一个表格呢老师,我困惑的地方是我想生成可设置行合并rospan的表格,js什么的都学了,老师教我下,如何动态生成可设置rowspan或者colspan的表格,document.create Element()… help

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-10-17 13:17:02

同学你好,老师写了一个简单的例子,同学可以作为参考自己实现一下(代码中有注释),如下

<!DOCTYPE html>

<html>

	<head>

		<meta charset="UTF-8">

		<title>table</title>

	</head>

	<body>

		<table id="table" border="1" cellspacing="0" width="50%"></table>

		<script type="text/javascript">
			// 获取DOM元素
			var table = document.getElementById("table");

			// 定义数组,存放 td 的 colSpan 的值
			// 3表示 <td colspan="3"></td>
			// 0表示 <td></td> 即没有colspan
			var rets = ["3", "0", "0", "0", "0", "2", "0", "3", "0", "0"];

			// 遍历该数组,生成10行5列表格
			for (var m = 0; m < rets.length; m++) {
				// 创建tr标签
				var tr = document.createElement("tr")
				// 判断colspan是否为0,计算出tdcol的值,用于生成td
				if (rets[m] > 0) {

					tdcol = 5 - rets[m] + 1 // 假如colSpan=3,需要生成3个td

				} else {

					tdcol = 5 - rets[m] // 假如colSpan=0,需要生成5个td

				}
				// 遍历tdcol
				for (var n = 0; n < tdcol; n++) {
					// 创建td标签
					var td = document.createElement("td")
					// 设置内容
					td.innerHTML = n;
					// 如果rets[m]不为0,给每一行的第一个td设置colSpan
					if (n == 0 && rets[m] > 0) {

						td.colSpan = rets[m]

					}
					// 将生成的td挂载到tr	
					tr.appendChild(td)

				}
				// 将tr挂载到table中
				table.appendChild(tr)
			}
		</script>

	</body>

</html>

实现效果如下:

https://img1.sycdn.imooc.com//climg/616bb1c50996ac0d07540867.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师