DOM(二)-10-(示例-删除表格的行和列)

表格样式table.css代码

@CHARSET "UTF-8";

table{
	border:##249bdb 1px solid;
	width:500px;
	border-collapse:collapse;	
}

table td{
	border:#249bdb 1px solid;
	padding:5px;/*td左边顶格*/
}


主程序代码

<!--
添加新功能:删除表格的行和列操作
打开DHMTL API文档,找到里面的table对象,其内有方法:

(1)deleteRow:从表格及 rows 集合中删除指定行(tr)。
语法:object.deleteRow( [iRowIndex])
传入角标,删除指定的行 

【特别注意】角标是从0开始的,即表格第一行对应角标0,第二行对应1,第三行对应2……
-->

<html>
	<head>
		<style type="text/css">
			@import url(table.css);
		</style>
	</head>
	<body>
		<script type="text/javascript">
		
			function createTable(){
				
				var oTabNode = document.createElement("table");
				
				//设置表格名称,为了后续删除行和删除列function中先对表格是否存在进行判断
				oTabNode.setAttribute("id","tableid");//该方法类似oTabNode.id = "tableid";

				var rowVal = parseInt(document.getElementsByName("rownum")[0].value);
				var colVal = parseInt(document.getElementsByName("colnum")[0].value);

				for(var x=1;x<=rowVal;x++){
					
					var oTrNode = oTabNode.insertRow();
					
					for(var y=1;y<=colVal;y++){
						
						var oTdNode = oTrNode.insertCell();
						oTdNode.innerHTML = x + "--" + y;
						
					}
					
				}
				
				document.getElementsByTagName("div")[0].appendChild(oTabNode);
				
				document.getElementsByName("crtBut")[0].disabled = true;
				
			}
			
			//定义删除行事件处理办法
			
			function delRow(){
				
				//获取表格对象
				var oTabNode = document.getElementById("tableid");
				
				//先判断表格是否存在,如果不存在,还删除什么东西
				if(oTabNode == null){
					
					alert("表格不存在!");
					return;
				}
				
				//获取要删除的表格的行数
				var rowVal_del = parseInt(document.getElementsByName("delrow")[0].value);
				
				//删除指定的行,这里需要健壮性判断,即判断用户输入的要删除的行是否有效的,即若3行表格,输入的数字是否在1-3之间
				
				if(rowVal_del<=1 && rowVal_del<=oTabNode.rows.length){
				/*
				 *oTabNode是当前被操作的表格节点,其有个属性叫做rows,即拿到所有行,然后lenght是一共有几行
				 */
					
					oTabNode.deleteRow(rowVal_del-1);
				/*
				 *【切记】这里必须减1,符合用户习惯,因为deleteRow方法传入的角标是从0开始计数的。
				 *比如rowVal_del=3,那么3-1=2,所以deleteRow(2),那么在实际操作中角标2对应的行是第三行,这样
				 *就实现了用户传入几就删除第几行。
				 */
				}else{
					
					alert("要删除的行不存在!");
				}
				
			}
			
			//定义删除列事件处理办法:【特别注意思想】删除列,其实就是删除每一行中同一位置的单元格,因为没有直接删除列的方法
			
			function delCol(){
				
				var oTabNode = document.getElementById("tableid");
				
				if(oTabNode == null){
					
					alert("表格不存在!");
					
					return;
				}
				
				//获取用户输入的数字(要删除的列)
				
				var colVal_del = parseInt(document.getElementsByName("delcol")[0].value);
				
				//删除列操作,既然是删除每行的同一位置的单元格,那么需要先遍历所有行,然后删除同一位置的单元格
				
				//【切记】健壮性判断(理由同上面的删除行function,详情查阅DHTML API文档)
				if(colVal_del>=1 && colVal_del<=oTabNode.rows[0].cells.length){
//oTabNode是当前被操作的表格节点,rows[0]是拿到第一行,cells是拿到该行的所有单元格,length是该行单元格总数,即oTabNode的列数
					
					for(var x=0;x<oTabNode.rows.length;x++){//遍历所有行
						
						oTabNode.rows[x].deleteCell(colVal_del-1);//拿到第x行,删除该行指定单元格
					//调用deleteCell方法删除每行同一位置单元格,【注意】减1
					}
				}else{
					
					alert("要删除的列不存在!");
					
				}
				
			}
		
		</script>
		
		行数:<input type="text" name="rownum" /> 列数:<input type="text" name="colnum" />
		
		<input type="button" value="创建表格" name="crtBut" οnclick="createTable()" />
		
		<hr/>
		
		删除第<input type="text" name="delrow" />行 <input type="button" value="删除行" οnclick="delRow()" /><br/>
		删除第<input type="text" name="delcol" />列 <input type="button" value="删除列" οnclick="delCol()" />
		
		<hr/>
		
		<div></div>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于HTML页面和DOM操作的问题。为了回答这个问题,我需要提供一些基本的HTML和JavaScript代码。以下是一个简单的示例,展示如何创建一个表格,并使用DOM操作添加或删除表行: HTML代码: ```html <table id="myTable"> <thead> <tr> <th>Name</th> <th>Age</th> <th>Gender</th> </tr> </thead> <tbody> <tr> <td>John</td> <td>25</td> <td>Male</td> </tr> <tr> <td>Jane</td> <td>30</td> <td>Female</td> </tr> </tbody> </table> <button id="addRow">Add Row</button> <button id="deleteRow">Delete Row</button> ``` JavaScript代码: ```javascript // 获取表格和按钮元素 var table = document.getElementById("myTable"); var addBtn = document.getElementById("addRow"); var delBtn = document.getElementById("deleteRow"); // 添加行 addBtn.addEventListener("click", function() { // 创建新行和单元 var newRow = document.createElement("tr"); var nameCell = document.createElement("td"); var ageCell = document.createElement("td"); var genderCell = document.createElement("td"); // 添加单元内容 nameCell.innerText = "New Name"; ageCell.innerText = "New Age"; genderCell.innerText = "New Gender"; // 将单元添加到新行中 newRow.appendChild(nameCell); newRow.appendChild(ageCell); newRow.appendChild(genderCell); // 将新行添加到表格中 table.appendChild(newRow); }); // 删除行 delBtn.addEventListener("click", function() { // 获取表格中最后一行 var lastRow = table.rows[table.rows.length - 1]; // 如果表格不为空,删除最后一行 if (lastRow) { table.deleteRow(-1); } }); ``` 以上代码演示了如何使用DOM操作增加或删除表行。当用户点击“Add Row”按钮时,会新建一行,并将其添加到表格中。当用户点击“Delete Row”按钮时,会删除表中的最后一行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值