使用HTML、css、JavaScript写增删改查

it2025-01-11  7

使用HTML、css、JavaScript写增删改查

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>表格</title> <style> div { width: 800px; height: 500px; text-align: center; position: absolute; border: 3px solid black; } </style> </head> <body> <!-- position="absolute" text-align="center" border="3px solid black" width="800px" height="500px" --> <div> <table border="1px solid" align="center" cellspacing=0 cellpadding=0> <tr> <td>用户名</td> <td><input type="text" id="yonghu" name="yonghu"></td> </tr> <tr> <td>昵称</td> <td><input type="text" id="nicheng" name="nicheng"></td> </tr> <tr> <td>重置</td> <td> <!-- bchgx:保存或更新 --> <input type="button" value="保存" id="bchgx"> </td> </tr> </table> <hr> <!-- searchKey:搜索关键字 --> 用户名: <input type="text" id="searchKey"> <input type="button" value="搜索" id="search"> <hr> <input id="dxk" type="button" value="全选" name="dxk"> <input id="qxdxk" type="button" value="取消全选" name="qxdxk"> <input id="fx" type="button" value="反选" name="fx"> <input id="plsc" type="button" value="批量删除" name="plsc"> <hr> <table border="1px solid" align="center" cellspacing=0 cellpadding=0 width="80%"> <tbody> <tr> <!-- zdxk:总多选框 --> <td>选择</td> <td>序号</td> <td>用户名</td> <td>昵称</td> <td>操作</td> </tr> <tr> <td><input type="checkbox" name="dxk"></td> <td>1</td> <td>aaa</td> <td>aaa</td> <td> <input type="submit" value="删除" onclick="del(this)"> <input type="submit" value="更新" class="update"> </td> </tr> <tr> <td><input type="checkbox" name="dxk"></td> <td>2</td> <td>bbb</td> <td>bbb</td> <td> <input type="submit" value="删除" onclick="del(this)"> <input type="submit" value="更新" class="update"> </td> </tr> <tr> <td><input type="checkbox" name="dxk"></td> <td>3</td> <td>ccc</td> <td>ccc</td> <td> <!-- this指的是整个input元素 --> <input type="button" value="删除" onclick="del(this)"> <input type="button" value="更新" class="update"> </td> </tr> </tbody> </table> </div> </body> <script> // 添加 window.onload = function () { document.getElementById('bchgx').onclick = function () { // 将要输入的内容存储到yonghu和nicheng两个变量名中 var yonghu1 = document.getElementsByName('yonghu')[0]; // var yonghu1 = document.getElementById('yonghu'); var yonghu = yonghu1.value; var nicheng1 = document.getElementsByName('nicheng')[0]; var nicheng = nicheng1.value; // 选择往哪个table中tbody中添加tr var table = document.getElementsByTagName('table')[1] var tbody = document.getElementsByTagName('tbody')[1]; // 创建一个tr var tr = document.createElement('tr');//相当于<tr></tr> // 在创建一个td var td1 = document.createElement('td'); // 在td中添加<input type="checkbox" name="dxk"> var input = document.createElement('input'); input.setAttribute("type", "checkbox"); input.setAttribute("name", "dxk"); // 将input追加到td中 td1.appendChild(input); // 将td1追加到tr中 tr.appendChild(td1); // 创建td2 var td2 = document.createElement('td'); // 定义table中的所有tr:alltrsOftable var alltrsOftable = table.getElementsByTagName('tr'); // 获取表格中最后一个序号 // alltrsOftable[alltrsOftable.length-1].children[1].innerHTML:表示的是所有tr中,表格的行数-1.索引值为1的那一列子节点开始中的内容 var lastXH = parseInt(alltrsOftable[alltrsOftable.length - 1].children[1].innerHTML);//转换成数字类型,或者使用Number // td2的值 td2.innerHTML = lastXH + 1; // 将td2添加到tr中 tr.appendChild(td2); // 创建第三列 var td3 = document.createElement('td'); // 将之前存储的yonghu添加到td3 td3.innerHTML = yonghu; // 将td3添加到tr中 tr.appendChild(td3); // 创建第四列 var td4 = document.createElement('td'); // 将之前存储的nicheng添加到td4 td4.innerHTML = nicheng; // 将td4添加到tr中 tr.appendChild(td4); // 创建第五列 var td5 = document.createElement('td'); td5.innerHTML = "<input type=\"button\" value=\"删除\" οnclick=\"del(this)\">&nbsp<input type=\"button\" value=\"更新\" class=\"update\">"; tr.appendChild(td5); // 将tr添加到table中 tbody.appendChild(tr); // console.log(yonghu); // console.log(nicheng); } } // 搜索 document.getElementById('search').onclick = function () { var searchKey = document.getElementById('searchKey').value; var trs = document.getElementsByTagName('table')[1].getElementsByTagName('tr'); // trs.length-1表示的是trs中tr除去第一行,防止越界将第一行去除掉 for (var i = trs.length - 1; i > 0; i--) { // console.log(111); // console.log( trs[i].children[2].innerHTML + " " + searchKey + " "+ (trs[i].children[2].innerHTML.indexOf(searchKey) == -1)); if (trs[i].children[2].innerHTML.indexOf(searchKey) == -1) { trs[i].parentNode.removeChild(trs[i]); } } } // 全选 // dxk:多选框 document.getElementById('dxk').onclick = function () { // console.log(111); var xz = document.getElementsByName('dxk'); // console.log(xz); for (var i = 0; i < xz.length; i++) { xz[i].checked = true; } }; // 取消全选 // qxdxk:取消多选框 document.getElementById('qxdxk').onclick = function () { var qxxz = document.getElementsByName('dxk'); for (var i = 0; i < qxxz.length; i++) { qxxz[i].checked = false; } }; // 反选 // fx:反选 document.getElementById('fx').onclick = function () { var fx = document.getElementsByName('dxk'); for (var i = 0; i < fx.length; i++) { fx[i].checked = !fx[i].checked; } } // 批量删除 // plsc:批量删除 document.getElementById('plsc').onclick = function () { // 找到第二个table里的input var inputs = document.getElementsByTagName('table')[1].getElementsByTagName('input'); // 进行遍历 for (var i = 0; i < inputs.length; i++) { // var input = inputs[i]; if (inputs[i].getAttribute('type') == "checkbox" && inputs[i].checked) { // console.log(111); document.getElementsByTagName('table')[1].getElementsByTagName('tbody')[0].removeChild(inputs[i].parentNode.parentNode); i = -1;//相当于var i = trs.length-1; i > 0 ; i-- } } }; // 删除 // 不能使用this,this是关键字,不能用来声明参数,经常使用obj来声明参数 // 直接通过行内设置onclick,传入this参数,在js中直接调用onclick调用的函数 function del(obj) { var table = obj.parentNode.parentNode.parentNode; // var tr = obj.parentNode.parentNode; table.removeChild(obj.parentNode.parentNode); } // 更新 // 选中的是一组数组,要想被选中,就要进行遍历 var updatestr = document.getElementsByClassName('update'); for (var i = 0; i < updatestr.length; i++) { var update1 = updatestr[i]; update1.onclick = enterupdate; } // 进入更新页面 // 定义一个全局变量 var yuanxuhao = -1; function enterupdate() { console.log(this); // yuanxuhao是个全局变量 yuanxuhao = this.parentNode.parentNode.children[1].innerHTML; var yonghu = this.parentNode.parentNode.children[2].innerHTML; var nicheng = this.parentNode.parentNode.children[3].innerHTML; document.getElementsByName("yonghu")[0].value = yonghu; document.getElementsByName("nicheng")[0].value = nicheng; document.getElementById("bchgx").value = "更新"; document.getElementById('bchgx').onclick = update; } function update() { var yonghu1 = document.getElementsByName('yonghu')[0]; var yonghu = yonghu1.value; var nicheng1 = document.getElementsByName('nicheng')[0]; var nicheng = nicheng1.value; // 找到更新的父节点的父节点,即所有的tr var trs = document.getElementsByTagName('table')[1].getElementsByTagName('tbody')[0].getElementsByTagName('tr'); for (var i = 0; i < trs.length; i++) { // 找到序号那一列 var count = trs[i].children[1].innerHTML; if (count == yuanxuhao) { trs[i].children[2].innerHTML = yonghu; trs[i].children[3].innerHTML = nicheng; break;//用于结束循环 } } } document.getElementsByName('yonghu')[0].value = ""; document.getElementsByName('nicheng')[0].value = ""; document.getElementById('bchgx').value = "保存"; document.getElementById('bchgx').onclick = bchgx; </script> <!-- // 删除 // document.getElementById('del').onclick = function () { // // console.log(this); // var table = obj.parentNode.parentNode.parentNode; // var tr = obj.parentNode.parentNode; // this.parentNode.parentNode.remove(tr); // // this.parents().remove(); // } --> </html>

内容不全

最新回复(0)