在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接

简介: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接

需求说明:

在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接,使用 DOM 节点的删除操作将对应的行数据删除


在文本输入框中输入姓名、年龄、班级和手机号,并选择性别

点击“插入数据”按钮,将输入框中的数据插入到表格中,表格中的数据将增加一条

点击表格中每条数据后的“删除”超链接,将删除该条数据,表格中的数据将减少一条


54.png

实现思路:


在页面中绘制表格,并添加 4 条虚拟数据,在每条数据后使用超链接,并且添加超链接的点击事件

在页面中添加文本输入框和选项菜单,并提示用户输入,添加“插入数据”按钮,并添加点击事件

在“插入数据”按钮的事件处理函数中,使用 document 对象的 getElementById、getElementsByTagName等属性获取输入框的值

使用 createElement 创建元素,使用 innerHTML 为元素设置文本,使用 appendChild 将创建的元素添加到 table 中

在“删除”超链接的事件处理函数中,获取超链接的父节点 td,继续获取父节点 tr,再获取父节点 table,然后将 table 节点中的 tr 节点删除


实现代码:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <body>
    <table border="1" id="tb">
      <tr>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th>
        <th>班级</th>
        <th>电话</th>
        <th>操作</th>
      </tr>
      <tr>
        <td>张三</td>
        <td>男</td>
        <td>25</td>
        <td>软件1班</td>
        <td>138xxxx0987</td>
        <td><a href="#" onclick="del(this)">删除</a></td>
      </tr>
      <tr>
        <td>李四</td>
        <td>女</td>
        <td>24</td>
        <td>软件2班</td>
        <td>136xxxx8766</td>
        <td><a href="#" onclick="del(this)">删除</a></td>
      </tr>
      <tr>
        <td>王五</td>
        <td>男</td>
        <td>26</td>
        <td>计科1班</td>
        <td>199xxxx8867</td>
        <td><a href="#" onclick="del(this)">删除</a></td>
      </tr>
      <tr>
        <td>赵六</td>
        <td>女</td>
        <td>23</td>
        <td>计科2班</td>
        <td>188xxxx9965</td>
        <td><a href="#" onclick="del(this)">删除</a></td>
      </tr>
    </table>
    <p>
      <input type="text" id="name" placeholder="请输入姓名"/>
      <select>
        <option>男</option>
        <option>女</option>
      </select>
      <input type="text" id="age" placeholder="请输入年龄" />
      <input type="text" id="cls" placeholder="请输入班级" />
      <input type="text" id="mobile" placeholder="请输入手机号" />
      <input type="button" value="插入数据" onClick="insert()" />
    </p>
    <script type="text/javascript">
      function insert(){
        var sel=document.getElementsByTagName("select")[0];
        var gender=sel.options[sel.selectedIndex].text;
        var age=document.getElementById("age").value;
        var cls=document.getElementById("cls").value;
        var mobile=document.getElementById("mobile").value;
        var name=document.getElementById("name").value;
        var arrays=new Array(name,gender,age,cls,mobile);
        var tb=document.getElementById("tb");
        var cols=tb.getElementsByTagName("th");
        var newtr=document.createElement("tr");
        for (var i=0;i<cols.length;i++) {
          if(i==cols.length-1) {
            var td=document.createElement("td");
            var a=document.createElement("a");
            a.innerHTML="删除";
            a.onclick=function(){
              a.parentNode.parentNode.parentNode.removeChild(a.parentNode.parentNode);
            }
            a.setAttribute("href","#");
            td.appendChild(a);
            newtr.appendChild(td);
          }else{
            var td=document.createElement("td");
            td.innerHTML=arrays[i];
            newtr.appendChild(td);
          }
        }
        tb.appendChild(newtr);
        console.log(newtr)
      }
      function del(obj){
        var tr=obj.parentNode.parentNode;
        if (tr!=null) {
          tr.parentNode.removeChild(tr);
        }
      }
    </script>
  </body>
</html>
相关文章
|
3月前
|
XML JavaScript 数据格式
DOM中的节点分为哪几种几类型
DOM中的节点分为哪几种几类型
31 0
|
24天前
|
JavaScript 前端开发 开发者
DOM节点类型
DOM节点类型
10 0
|
3月前
|
JavaScript 前端开发
JavaScript:DOM节点
JavaScript:DOM节点
22 0
|
3月前
|
JavaScript 小程序
遍历类数组之获取多个dom节点并遍历
遍历类数组之获取多个dom节点并遍历
|
3月前
|
缓存 JavaScript 前端开发
客户端渲染页面、DOM重绘和回流、避免DOM的回流
客户端渲染页面、DOM重绘和回流、避免DOM的回流
17 0
|
4月前
|
JavaScript 前端开发
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
|
4月前
|
JavaScript 测试技术
html2canvas将document DOM节点转换为图片,并下载到本地
html2canvas将document DOM节点转换为图片,并下载到本地
|
4月前
|
JavaScript
【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
|
7月前
|
存储 XML JavaScript
前端(十四)——DOM节点操作手册:你需要了解的一切
前端(十四)——DOM节点操作手册:你需要了解的一切
|
8月前
|
JavaScript 前端开发
前端项目实战壹佰壹拾玖react-admin+material ui-react-admin之SimpleList中primaryText使用三返回dom节点
前端项目实战壹佰壹拾玖react-admin+material ui-react-admin之SimpleList中primaryText使用三返回dom节点
40 0