什么是DOM操作?
DOM操作是指对文档对象模型(Document Object Model,简称DOM)进行增删改查等操作的过程。DOM是一种表示和操作HTML、XML等文档的标准编程接口,它将文档解析为一个由节点和对象(包含属性和方法)组成的集合,开发者可以通过DOM提供的接口来访问和操作文档的各个部分,包括元素、属性、文本等。常见的DOM操作包括通过选择器选取元素、添加/删除元素、修改元素的属性和内容等。通过DOM操作,开发者可以动态地改变页面的结构和样式,实现与用户的交互。
表格中常见的DOM操作有哪些?
-
创建表格:通过document.createElement()方法创建table元素,并使用appendChild()方法将其添加到文档中。
-
添加和删除行、列:使用insertRow()方法添加新的行,使用deleteRow()方法删除指定的行;使用insertCell()方法添加新的单元格,使用deleteCell()方法删除指定的单元格。
-
修改表格内容:通过访问表格中的行和单元格元素,来修改其内容,例如使用innerHTML或innerText属性来设置行内文本或HTML内容。
-
获取和修改表格的属性:使用getAttribute()方法获取表格的属性值,使用setAttribute()方法设置表格的属性值,例如设置表格的边框样式、宽度等。
-
遍历表格:使用for循环和表格的rows属性来遍历表格的所有行,使用for循环和行的cells属性来遍历每一行的所有单元格。
-
修改单元格样式:通过访问单元格元素的style属性,可以设置单元格的样式,如背景颜色、字体颜色、边框等。
-
表格排序:实现表格的排序功能,可以通过比较单元格中的内容,并使用insertBefore()方法重新排列行的顺序。
以下是一个简单的DOM操作表格实例,希望对你有帮助!
-
<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')"> <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')"> <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')"> <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')"> <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')"> <input type="button" value="修改"onclick="revise('row6')"></td> </tr> </table> <div class="sr"> <ul> <li>姓名:<input type="text" id="name" style="width: 80px;"> </li> <li>性别:<select id="sex"> <option value="男">男</option> <option value="女">女</option> <option value="未知">未知</option> </select> </li> <li>电话:<input type="text" name="Name" id="house" style="width: 146px;"> </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 +'\')"> <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')"> <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')"> <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')"> <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')"> <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')"> <input type="button" value="修改"onclick="revise('row6')"></td> </tr> </table> <div class="sr"> <ul> <li>姓名:<input type="text" id="name" style="width: 80px;"> </li> <li>性别:<select id="sex"> <option value="男">男</option> <option value="女">女</option> <option value="未知">未知</option> </select> </li> <li>电话:<input type="text" name="Name" id="house" style="width: 146px;"> </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 +'\')"> <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>