<!DOCTYPE html> <html> <head> <title>jsDOM添加一行表格</title> <style type="text/css"> td { style="border: 1px solid green } #table_target { position: relative; left: 350px; /*border: 2px solid orange;*/ text-align: center; } table { position: relative; left: 0px; width: 600px; padding: 0px; /*border: 1px solid red;*/ } td { width: 20px; border: 2px solid green; } #student { display: block; /*将行内元素变为块级元素*/ font-size: 30px; margin: 30px; margin-top: 100px; text-align: center; border: 2px solid red; } form { width: 600px; height: 20px; /*border: 1px solid red;*/ margin-bottom: 20px; } .input_div { float: left; display: inline; width: 150px; } input { width: 100px; border-color: red; border-radius: 5px 5px; } .input_name { width: 50px; height: 20px; } .input_div2 { float: left; display: inline; width: 150px; height: 20px; /*border: 1px solid red;*/ margin-right: 0px; } .input_div2 input { width: 150px; } </style> </head> <body> <div id="table_target" style="width: 600px; height: 500px;"> <span id="student">学生成绩表</span> <table id="table_"> <tr> <td>姓名</td> <td>java</td> <td>java_web</td> <td>python</td> </tr> <tr> <td>冯磊</td> <td>80</td> <td>90</td> <td>100</td> </tr> <tr id="trt"> <td>王五</td> <td>100</td> <td>100</td> <td>100</td> </tr> </table> <hr style="border: 2px solid orange;margin-top: 18px;"> <form id="information"> <div class="input_div"> <span class="input_name">姓名:</span><input id="a" type="text"> </div> <div class="input_div"> <span class="input_name">java:</span><input id="b" type="text"> </div> <div class="input_div"> <span class="input_name">jweb:</span><input id="c" type="text"> </div> <div class="input_div"> <span class="input_name">pytn:</span><input id="d" type="text"> </div> </form> <form> <div class="input_div2"> <input type="button" value="修改" onclick="modify_information()"> </div> <div class="input_div2"> <input type="button" value="插入" onclick="insert_information()"> </div> <div class="input_div2"> <input type="button" value="删除" onclick="delete_information()"> </div> <div class="input_div2"> <input type="reset" value="清空" onclick="clear_information()"> </div> </form> <hr style="border: 2px solid orange;margin-top: 18px;"> </div> </body> <script language="javascript"> function modify_information() { //获取信息 var td1 = document.getElementById("a"); var td2 = document.getElementById("b"); var td3 = document.getElementById("c"); var td4 = document.getElementById("d"); var td_c = new Array(4); td_c[0]=td1; td_c[1]=td2; td_c[2]=td3; td_c[4]=td4; //得到所有行 var data = document.getElementById("table_").rows; //得到所有列 var columns = document.getElementById("table_").rows.item(0).cells; var flag = false; //标志位 for (var i = 1; i < data.length; i++) { for (var j = 0; j < td_c.length; j++) { if (data[i].cells[j] == td_c[j]) { flag = true; break; } } if (flag == true) { for (var j = 0; j < td_c.length; j++) { data[i].cells[j] = td_c[j]; } break; } } if (flag == false) alert("信息未修改,请重新输入!"); } function insert_information() { //获得表单值 var td1 = document.getElementById("a").value; var td2 = document.getElementById("b").value; var td3 = document.getElementById("c").value; var td4 = document.getElementById("d").value; //标志位用来判断是否重复,广度优先遍历的思想 var flag = false; //去重复插入 var data = document.getElementById("table_").rows; for (var i = 1; i < data.length; i++) { if (td1 == data[i].cells[0].innerHTML) flag = true; } if (isNaN(td2) || isNaN(td3) || isNaN(td4)) { alert("输入格式错误,请输入数字!"); } else if ((td2 < 0 || td2 > 100) || (td3 < 0 || td3 > 100) || (td4 < 0 || td4 > 100)) { alert("请输入0~100之间的有效成绩!"); } else if (flag == true) { alert("已经有该同学的信息了!"); } else if (td1 != "" && td2 != "" && td3 != "" && td4 != "") { //生成DOM结点 tr , td var td_1 = document.createElement("td"); var td_2 = document.createElement("td"); var td_3 = document.createElement("td"); var td_4 = document.createElement("td"); var tr = document.createElement("tr"); //为DOM结点赋值 td_1.innerHTML = td1; td_2.innerHTML = td2; td_3.innerHTML = td3; td_4.innerHTML = td4; //将td加入到tr中去 tr.appendChild(td_1); tr.appendChild(td_2); tr.appendChild(td_3); tr.appendChild(td_4); //将tr加入到table中去 document.getElementById("table_").appendChild(tr); } else { alert("请入数据!!!"); } } function delete_information() { //获取信息 var td1 = document.getElementById("a").value; var flag = false; //得到所有td var data = document.getElementById("table_").rows; for (var i = 1; i < data.length; i++) { if (td1 == data[i].cells[0].innerHTML) { flag = true; document.getElementById("table_").deleteRow(i); } } if (flag == false) alert("没有该同学的信息"); } function clear_information() { //获得表单值 document.getElementById("a").value=""; document.getElementById("b").value=""; document.getElementById("c").value=""; document.getElementById("d").value=""; } /* js的表格对象: //表格行数 法1.var rows = document.getElementById("example_table").rows.length; 法2. //获取表格中的所有行的结点(tr....tr数据),返回值是数组 var data = document.getElementById("example_table").rows; //获得所有行的数目(tr的数目) var length = data.length; //表格列数 ,item是获取表格中的一个条目(这里是一行) 法1: var cells = document.getElementById("example_table").rows.item(0).cells.length; 法2: //获取表格中的所有行的结点(tr....tr数据),返回值是数组 var data = document.getElementById("example_table").rows; //获取列数 var cells = data[0].cells.length; //表格对象的方法 table的方法 createCaption() 为表格创建一个 caption 元素。 createTFoot() 在表格中创建一个空的 tFoot 元素。 createTHead() 在表格中创建一个空的 tHead 元素。 deleteCaption() 从表格删除 caption 元素以及其内容。 deleteRow(行号) 从表格删除一行。 deleteTFoot() 从表格删除 tFoot 元素及其内容。 deleteTHead() 从表格删除 tHead 元素及其内容。 insertRow(行号) 在表格中插入一个新行。 //insertRow(行号i) 是插入在第i行前面一行,if i==表格行数,会将该数据插入到该表格的最后一行 //插入举例 function insRow(id) { //在表格的第三行前插入一行数据 x指向这一行 var x = document.getElementsByName("table").insertRow(3); //给该行插入列和列的数据 var y = x.insertCell(0); var z = x.insertCell(1); y.innerHTML = z.innerHTML = "ppp"; } //也可以用DOM来操作表格对象 */ </script> </html>
结果截图: