1. 程式人生 > 實用技巧 >js Dom程式設計 動態新增和刪除表格行

js Dom程式設計 動態新增和刪除表格行

js Dom程式設計 動態新增和刪除表格行

要求:製作一個表格,能夠動態新增和刪除學生資訊
1)能夠在表格末尾新增一行學生資訊
2)能夠刪除選中的一行學生資訊

步驟:
1)寫一個js函式能夠動態新增表格的資訊
2)寫一個js函式能夠刪除當前所選的行資訊

首先,我們先把表頭建立好

<table id="tab" border="1" width="960px" align="center">
    <tr>
      <th>學號</th>
      <th>姓名</th>
      <th>操作</th>
    </tr>

    <tbody>
    </tbody>

</table>

tbody標籤用於之後動態生成新的表格行

然後,建立一個按鈕,用於生成新的行

<div id="btn" align="center">
    <input id="addBtn" type="button" value="新增一行" name="btn" onclick="add()">
  </div>

寫新增行資訊的函式

function add() {
      var editTable = document.getElementById("tbody");
      var tr = document.createElement("tr");
      editTable.appendChild(tr);
      var td1 = document.createElement("td");
      td1.innerHTML = "xh00" + i;
      var td2 = document.createElement("td");
      td2.innerHTML = "第" + (i+1) + "學生";
      var td3 = document.createElement("td");
      td3.innerHTML = "<a href=# onclick='del(this)'>刪除</a>";
      tr.appendChild(td1);
      tr.appendChild(td2);
      tr.appendChild(td3);
      i++;
    }

前面要定義數字型變數i,用於顯示每行學生序數

定義刪除指定行的函式

function del(obj) {
      var tr = obj.parentNode.parentNode;
      var tbody = tr.parentNode;
      tbody.removeChild(tr);
    }

全部程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <style>
      #btn{
        margin-top: 100px;
      }
      #addBtn{
        width: 80px;
        height: 60px;
      }
    </style>
</head>
<body>
  <table id="tab" border="1" width="960px" align="center">
    <tr>
      <th>學號</th>
      <th>姓名</th>
      <th>操作</th>
    </tr>
    <tbody id = "tbody">

    </tbody>
  </table>
  <div id="btn" align="center">
    <input id="addBtn" type="button" value="新增一行" name="btn" onclick="add()">
  </div>
  <script>
    var i = 0;
    function del(obj) {
      var tr = obj.parentNode.parentNode;
      var tbody = tr.parentNode;
      tbody.removeChild(tr);
    }
    function add() {
      var editTable = document.getElementById("tbody");
      var tr = document.createElement("tr");
      editTable.appendChild(tr);
      var td1 = document.createElement("td");
      td1.innerHTML = "xh00" + i;
      var td2 = document.createElement("td");
      td2.innerHTML = "第" + (i+1) + "學生";
      var td3 = document.createElement("td");
      td3.innerHTML = "<a href=# onclick='del(this)'>刪除</a>";
      tr.appendChild(td1);
      tr.appendChild(td2);
      tr.appendChild(td3);
      i++;
    }
  </script>
</body>
</html>

實現效果: