js如何使用DOM,什么是DOM,使用DOM操作表格,增删改查

本文介绍了DOM操作,它是对文档对象模型进行增删改查的过程,可动态改变页面结构和样式。还阐述了表格中常见的DOM操作,如创建表格、添加删除行列、修改内容属性、遍历表格、修改样式及排序等,并给出简单实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是DOM操作?

DOM操作是指对文档对象模型(Document Object Model,简称DOM)进行增删改查等操作的过程。DOM是一种表示和操作HTML、XML等文档的标准编程接口,它将文档解析为一个由节点和对象(包含属性和方法)组成的集合,开发者可以通过DOM提供的接口来访问和操作文档的各个部分,包括元素、属性、文本等。常见的DOM操作包括通过选择器选取元素、添加/删除元素、修改元素的属性和内容等。通过DOM操作,开发者可以动态地改变页面的结构和样式,实现与用户的交互。


表格中常见的DOM操作有哪些?

  1. 创建表格:通过document.createElement()方法创建table元素,并使用appendChild()方法将其添加到文档中。

  2. 添加和删除行、列:使用insertRow()方法添加新的行,使用deleteRow()方法删除指定的行;使用insertCell()方法添加新的单元格,使用deleteCell()方法删除指定的单元格。

  3. 修改表格内容:通过访问表格中的行和单元格元素,来修改其内容,例如使用innerHTML或innerText属性来设置行内文本或HTML内容。

  4. 获取和修改表格的属性:使用getAttribute()方法获取表格的属性值,使用setAttribute()方法设置表格的属性值,例如设置表格的边框样式、宽度等。

  5. 遍历表格:使用for循环和表格的rows属性来遍历表格的所有行,使用for循环和行的cells属性来遍历每一行的所有单元格。

  6. 修改单元格样式:通过访问单元格元素的style属性,可以设置单元格的样式,如背景颜色、字体颜色、边框等。

  7. 表格排序:实现表格的排序功能,可以通过比较单元格中的内容,并使用insertBefore()方法重新排列行的顺序。


    以下是一个简单的DOM操作表格实例,希望对你有帮助!

  8. <body>
    		<p><input type="button" value="修改表头" onclick="nvat()"></p>
    		<table border="1" cellspacing="0" cellpadding="8" width="560px" style="text-align: center;" id="bgt">
    			<tr id="row1">
    				<th>名称系列</th>
    				<th>性别</th>
    				<th>联系电话</th>
    				<th>编辑</th>
    			</tr>
    			<tr id="row2">
    				<td>刘xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row2')">&nbsp;<input type="button" value="修改"onclick="revise('row2')"></td>
    			</tr>
    			<tr id="row3">
    				<td>曹xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row3')">&nbsp;<input type="button" value="修改"onclick="revise('row3')"></td>
    			</tr>
    			<tr id="row4">
    				<td>岑xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row4')">&nbsp;<input type="button" value="修改"onclick="revise('row4')"></td>
    			</tr>
    			<tr id="row5">
    				<td>李xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row5')">&nbsp;<input type="button" value="修改"onclick="revise('row5')"></td>
    			</tr>
    			<tr id="row6">
    				<td>周xx</td>
    				<td>男</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row6')">&nbsp;<input type="button" value="修改"onclick="revise('row6')"></td>
    			</tr>
    		</table>
    		<div class="sr">
    			<ul>
    				<li>姓名:<input type="text" id="name" style="width: 80px;"> &nbsp;</li>
    				<li>性别:<select id="sex">
    						<option value="男">男</option>
    						<option value="女">女</option>
    						<option value="未知">未知</option>
    					</select>&nbsp;
    				</li>
    				<li>电话:<input type="text" name="Name" id="house" style="width: 146px;">&nbsp; </li>
    				<li><button onclick="adro()">添加学员信息</button></li>
    			</ul>
    		</div>
    	</body>

    <style type="text/css">
    			ul,
    			li {
    				list-style: none;
    				padding: 0px;
    				margin: 0px;
    			}
    
    			.sr ul {
    				display: flex;
    				margin-top: 12px;
    			}
    		</style>
    <script>
    		function nvat(){//修改表头
    			var navs = document.getElementById("row1")
    				navs.setAttribute("style", "background:#3b3b8b;color:coral")
    			}
    		function deletes(tid){//删除
    			var row = document.getElementById(tid)
    			row.parentNode.removeChild(row)
    		}
    			function revise(id){//修改
    				var td = document.getElementById(id).cells; //获取所有要修改的单元格对象
    					var name = td[0].innerHTML; //获取姓名
    					var house = td[2].innerHTML; //获取电话
    					td[0].innerHTML = "<input size='2' value='" + name + "'>";
    					td[2].innerHTML = "<input size='9' value='" + house + "'>";
    					var sex = td[1]
    						.innerHTML; //获取性别
    					if (sex.trim() == "男") {
    						td[1].innerHTML = '<input type="radio" name="se' + id + '" checked>男' + '<input type="radio" name="se' + id +
    							'">女'
    					} else if (sex.trim() == "女") {
    						td[1].innerHTML = '<input type="radio" name="se' + id + '" >男' + '<input type="radio" name="se' + id +
    							'" checked>女'
    					}
    					td[3].lastElementChild.value = "确定";
    					td[3].lastElementChild.setAttribute("onclick", "def('" + id + "')")
    				}
    				//确定
    				function def(id) {
    					var td = document.getElementById(id).cells; //获取所有要修改的单元格对象
    					var name = td[0].lastElementChild.value; //获取用户输入的姓名
    					var house = td[2].lastElementChild.value; //获取用户输入的电话
    					td[0].innerHTML = name;
    					td[2].innerHTML = house;
    					var sex = td[1].getElementsByTagName("input"); //获取单元格中所有的单选按钮 
    					for (var i = 0; i < sex.length; i++) {
    						if (sex[i].checked) {
    							td[1].innerHTML = "男"
    						} else {
    							td[1].innerHTML = "女"
    						}
    					}
    					td[3].lastElementChild.value = "修改";
    					td[3].lastElementChild.setAttribute("onclick", "revise('" + id + "')")//要与上面的函数反复运用
    				}
    			var index = 7
    			function adro(){//添加
    				var rid ="row"+(index++)
    				//输入用户信息
    				var name = document.getElementById("name").value
    				var sex = document.getElementById("sex").value
    				var house = document.getElementById("house").value
    				//创建4个td节点和一个tr节点
    				var td1 = document.createElement("td")
    				td1.innerHTML = name
    				var td2 = document.createElement("td")
    				td2.innerHTML = sex
    				var td3 = document.createElement("td")
    				td3.innerHTML = house
    				var td4 = document.createElement("td")
    				td4.innerHTML = '<input type="button" value="删除" onclick="deletes(\'' + rid +'\')">&nbsp;<input type="button" value="修改"onclick="revise(\'' + rid +'\')">'
    				
    				var tr = document.createElement("tr")
    				tr.setAttribute("id",rid)
    				tr.appendChild(td1)
    				tr.appendChild(td2)
    				tr.appendChild(td3)
    				tr.appendChild(td4)
    				
    			document.getElementById("bgt").lastChild.appendChild(tr)
    			}
    			
    	</script>

    实例完全代码
     

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<style type="text/css">
    			ul,
    			li {
    				list-style: none;
    				padding: 0px;
    				margin: 0px;
    			}
    
    			.sr ul {
    				display: flex;
    				margin-top: 12px;
    			}
    		</style>
    	</head>
    	<body>
    		<p><input type="button" value="修改表头" onclick="nvat()"></p>
    		<table border="1" cellspacing="0" cellpadding="8" width="560px" style="text-align: center;" id="bgt">
    			<tr id="row1">
    				<th>亚洲男神系列</th>
    				<th>性别</th>
    				<th>联系电话</th>
    				<th>编辑</th>
    			</tr>
    			<tr id="row2">
    				<td>刘xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row2')">&nbsp;<input type="button" value="修改"onclick="revise('row2')"></td>
    			</tr>
    			<tr id="row3">
    				<td>曹xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row3')">&nbsp;<input type="button" value="修改"onclick="revise('row3')"></td>
    			</tr>
    			<tr id="row4">
    				<td>岑xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row4')">&nbsp;<input type="button" value="修改"onclick="revise('row4')"></td>
    			</tr>
    			<tr id="row5">
    				<td>李xx</td>
    				<td>女</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row5')">&nbsp;<input type="button" value="修改"onclick="revise('row5')"></td>
    			</tr>
    			<tr id="row6">
    				<td>周xx</td>
    				<td>男</td>
    				<td>123456789</td>
    				<td><input type="button" value="删除" onclick="deletes('row6')">&nbsp;<input type="button" value="修改"onclick="revise('row6')"></td>
    			</tr>
    		</table>
    		<div class="sr">
    			<ul>
    				<li>姓名:<input type="text" id="name" style="width: 80px;"> &nbsp;</li>
    				<li>性别:<select id="sex">
    						<option value="男">男</option>
    						<option value="女">女</option>
    						<option value="未知">未知</option>
    					</select>&nbsp;
    				</li>
    				<li>电话:<input type="text" name="Name" id="house" style="width: 146px;">&nbsp; </li>
    				<li><button onclick="adro()">添加学员信息</button></li>
    			</ul>
    		</div>
    	</body>
    	<script>
    		function nvat(){//修改表头
    			var navs = document.getElementById("row1")
    				navs.setAttribute("style", "background:#3b3b8b;color:coral")
    			}
    		function deletes(tid){//删除
    			var row = document.getElementById(tid)
    			row.parentNode.removeChild(row)
    		}
    			function revise(id){//修改
    				var td = document.getElementById(id).cells; //获取所有要修改的单元格对象
    					var name = td[0].innerHTML; //获取姓名
    					var house = td[2].innerHTML; //获取电话
    					td[0].innerHTML = "<input size='2' value='" + name + "'>";
    					td[2].innerHTML = "<input size='9' value='" + house + "'>";
    					var sex = td[1]
    						.innerHTML; //获取性别
    					if (sex.trim() == "男") {
    						td[1].innerHTML = '<input type="radio" name="se' + id + '" checked>男' + '<input type="radio" name="se' + id +
    							'">女'
    					} else if (sex.trim() == "女") {
    						td[1].innerHTML = '<input type="radio" name="se' + id + '" >男' + '<input type="radio" name="se' + id +
    							'" checked>女'
    					}
    					td[3].lastElementChild.value = "确定";
    					td[3].lastElementChild.setAttribute("onclick", "def('" + id + "')")
    				}
    				//确定
    				function def(id) {
    					var td = document.getElementById(id).cells; //获取所有要修改的单元格对象
    					var name = td[0].lastElementChild.value; //获取用户输入的姓名
    					var house = td[2].lastElementChild.value; //获取用户输入的电话
    					td[0].innerHTML = name;
    					td[2].innerHTML = house;
    					var sex = td[1].getElementsByTagName("input"); //获取单元格中所有的单选按钮 
    					for (var i = 0; i < sex.length; i++) {
    						if (sex[i].checked) {
    							td[1].innerHTML = "男"
    						} else {
    							td[1].innerHTML = "女"
    						}
    					}
    					td[3].lastElementChild.value = "修改";
    					td[3].lastElementChild.setAttribute("onclick", "revise('" + id + "')")//要与上面的函数反复运用
    				}
    			var index = 7
    			function adro(){//添加
    				var rid ="row"+(index++)
    				//输入用户信息
    				var name = document.getElementById("name").value
    				var sex = document.getElementById("sex").value
    				var house = document.getElementById("house").value
    				//创建4个td节点和一个tr节点
    				var td1 = document.createElement("td")
    				td1.innerHTML = name
    				var td2 = document.createElement("td")
    				td2.innerHTML = sex
    				var td3 = document.createElement("td")
    				td3.innerHTML = house
    				var td4 = document.createElement("td")
    				td4.innerHTML = '<input type="button" value="删除" onclick="deletes(\'' + rid +'\')">&nbsp;<input type="button" value="修改"onclick="revise(\'' + rid +'\')">'
    				
    				var tr = document.createElement("tr")
    				tr.setAttribute("id",rid)
    				tr.appendChild(td1)
    				tr.appendChild(td2)
    				tr.appendChild(td3)
    				tr.appendChild(td4)
    				
    			document.getElementById("bgt").lastChild.appendChild(tr)
    			}
    			
    	</script>
    </html>
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值