JavaScript基础DOM操作--创建删除节点

一、案例需求
在文本框中输入行数和列数,生成对应行数列数的表格,表格里面的数字和颜色是随机的。

二、涉及的知识点

  • 创建节点的DOM操作
  • Math对象中产生随机数的应用
  • innerHTML

三、实现过程
1.编写HTML结构层

<div id="setting">
		<span>行数</span><input type="text" id="row">
		<span>列数</span><input type="text" id="col">
		<button id="createTable" onclick="createTable()">生成表格</button>
	</div>

2.样式层

<style type="text/css">
		table{
			border:1px solid #000;
		}

		td{
			color: #fff;
			cursor: pointer;
			text-align: center;
			border:1px solid #000;
			color: black;
		}
	</style>

3.JavaScript脚本控制层


	<script type="text/javascript">

		//动态创建一个表格
		function createTable() {
			var row=document.getElementById("row").value;
			var col=document.getElementById("col").value;
			var div=document.createElement("div");//创建一个div,存放一个动态生成的表格
			div.setAttribute("id","table");//设置div的id
			var divTable=document.getElementById("table");
			if(divTable!=null){
				document.body.removeChild(divTable);
			}

			var aRow=[];//定义表格的行
			var aCol=[];//定义表格的列

			//循环动态生成Table元素
			for(var i=row;i--;){
				aCol.length=0;//初始化表格中列长度
				for (var j = col;j--; ) {//构建表格中的每一列
					aCol.push("<td style=\"background:"+createColor()+";\">"+createRandom(1,15)+"</td>")
				}
				aRow.push("<tr>"+aCol.join("")+"</tr>");//join返回拆分后的数组
			}
			div.innerHTML="<table><tbody>"+aRow.join("")+"</table></tbody>";
			document.body.appendChild(div);//在body体里加入div
		}

		//随机生成数字,用于填充单元格
		function createRandom(lower,upper){
			return Math.floor(Math.random()*(upper-lower+1)+lower);
		}

		//随机生成颜色的代码
		function createColor(){
			return "#"+Math.floor(Math.random()*0xffffff).toString(16);
		}
	</script>

四、案例效果
在这里插入图片描述

五、总结与体会
1.创建一个节点后,还要用appendChild方法添加到父元素上
2.删除节点用removeChild方法
3.生成指定范围的随机数函数,传入该函数的参数是两个数,返回的最大值与最小值,Math.random()返回的是是一个小数值,因此要乘上范围的大小,即最大值-最小值+1
4.生成随机颜色的函数,因此颜色的是从#000000到#ffffff,因此可以把数值部分乘上随机数,再转换成十六机制与“#”进行拼接
5.join()用于返回指定分隔后的数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值