1. 程式人生 > 程式設計 >JavaScript動態生成表格的示例

JavaScript動態生成表格的示例

要求:

HTML標籤只寫一行表頭
通過JS來寫動態的表格(有多少組資料,就自動建立多少行表格)
為學習和演示,採用固定的資料,不涉及呼叫後臺資料

程式碼實現:
HTML內容:

<table cellspacing="0">
  <thead>
    <tr>
      <th>姓名</th>
      <th>科目</th>
      <th>成績</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

CSS內容:

table {
  width: 500px;
  margin: 100px auto;
  border-collapse: collapse;
  text-align: center;
}

td,th {
  border: 1px solid #333;
}

thead tr {
  height: 40px;
  background-color: #ccc;
}

JS內容:

// 1.先準備好學生的資料,用陣列形式儲存,每個陣列元素是一個物件
var datas = [{
  name: '張三',subject: 'JavaScript',score: 100
},{
  name: '李四',score: 98
},{
  name: '王五',score: 99
},{
  name: '趙六',score: 88
},{
  name: '哈哈',score: 0
}];
// 2. 往tbody 裡面建立行: 有幾個人(通過陣列的長度)我們就建立幾行
var tbody = document.querySelector('tbody');
for (var i = 0; i < datas.length; i++) { // 外面的for迴圈管行 tr
  // 1. 建立 tr行
  var tr = document.createElement('tr');
  tbody.appendChild(tr);
  // 2. 行裡面建立單元格(跟資料有關係的3個單元格) td 單元格的數量取決於每個物件裡面的屬性個數 for迴圈遍歷物件 datas[i]
  for (var k in datas[i]) { // 裡面的for迴圈管列 td
    // 建立單元格 
    var td = document.createElement('td');
    // 把物件裡面的屬性值 datas[i][k] 給 td 
    // console.log(datas[i][k]);
    td.innerHTML = datas[i][k];
    tr.appendChild(td);
  }
  // 3. 建立有刪除2個字的單元格 
  var td = document.createElement('td');
  td.innerHTML = '<a href="javascript:;" rel="external nofollow" >刪除</a>';
  tr.appendChild(td);

}
// 4. 刪除操作
var as = document.querySelectorAll('a');
for (var i = 0; i < as.length; i++) {
  as[i].onclick = function() {
    // 點選a刪除 當前a所在的行(a父節點的父節點) node.removeChild(child) 
    tbody.removeChild(this.parentNode.parentNode)
  }
}
// for(var k in obj) {
//   k 得到的是屬性名
//   obj[k] 得到是屬性值
// }

實現效果:

JavaScript動態生成表格的示例

點選刪除按鈕,相應的行會刪除。
點選刪除“張三”的資料:

JavaScript動態生成表格的示例

以上就是JavaScript動態生成表格的示例的詳細內容,更多關於JavaScript 生成表格的資料請關注我們其它相關文章!