前面的話
表格table元素是HTML中最複雜的結構之一。要想建立表格,一般都必須涉及表示表格行、單元格、表頭等方面的標籤。由於涉及的標籤多,因而使用核心DOM方法建立和修改表格往往都免不了要編寫大量的程式碼。本文將詳細介紹DOM操作表格的屬性和方法
需求
要通過DOM實現下列格式的表格結構
<table border = "1" width = "100%"> <tbody> <tr> <td>Cell 1,1</td> <td>Cell 2,1</td> </tr> <tr> <td>Cell 1,2</td> <td>Cell 2,2</td> </tr> </tbody> </table>
DOMcore
如果通過DOMcore方法,則方法如下
//建立表格 var table = document.createElement("table"); table.border = "1"; table.width = "100%"; //建立tbody var tbody = document.createElement("tbody"); table.appendChild(tbody); //建立第一行 var row1 = document.createElement("tr"); tbody.appendChild(row1); var cell1_1 = document.createElement("td"); cell1_1.appendChild(document.createTextNode("Cell 1,1")); row1.appendChild(cell1_1); var cell2_1 = document.createElement("td"); cell2_1.appendChild(document.createTextNode("Cell 2,1")); row1.appendChild(cell2_1); //建立第二行 var row2 = document.createElement("tr"); tbody.appendChild(row2); var cell1_2 = document.createElement("td"); cell1_2.appendChild(document.createTextNode("Cell 1,2")); row2.appendChild(cell1_2); var cell2_2 = document.createElement("td"); cell2_2.appendChild(document.createTextNode("Cell 2,2")); row2.appendChild(cell2_2); //將表格新增到文件主體中 document.body.appendChild(table);
屬性和方法
顯然DOM程式碼很長,為了方便構建表格,HTML DOM為<table>、<tbody>、<tr>元素新增了屬性和方法。
【1】為<table>元素新增的屬性和方法
caption:儲存著對<caption>元素的指標 tBodies:是一個<tbody>元素的HTMLCollection tFoot:儲存著對<tfoot>元素的指標 tHead:儲存著對<thead>元素的指標 createTHead():建立<thead>元素,將其放到表格中,返回引用 createTFoot():建立<tfoot>元素,將其放到表格中,返回引用 createCaption():建立<caption>元素,將其放到表格中,返回引用 deleteTHead():刪除<thead>元素 deleteTFoot():刪除<tfoot>元素 deleteCaption():刪除<caption>元素
【2】為<tbody>元素新增的屬性和方法
rows:儲存著<tbody>元素中行的HTMLCollection
deleteRow(pos):刪除指定位置的行
insertRow(pos):向rows集合中的指定位置插入一行,返回對新插入行的引用
【3】為<tr>元素新增的屬性和方法
cells:儲存著<tr>元素中單元格的HTMLCollection
deleteCell(pos):刪除指定位置的單元格
insertCell(pos):向cells集合中的指定位置插入一個單元格,返回對新插入單元格的引用
程式碼重寫
//建立表格 var table = document.createElement("table"); table.border = "1"; table.width = "100%"; //建立tbody var tbody = document.createElement("tbody"); table.appendChild(tbody); //建立第一行 tbody.insertRow(0); tbody.rows[0].insertCell(0); tbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1")); tbody.rows[0].insertCell(1); tbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1")); //建立第二行 tbody.insertRow(1); tbody.rows[1].insertCell(0); tbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2")); tbody.rows[1].insertCell(1); tbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2")); //將表格新增到文件主體中 document.body.appendChild(table);
效果展示
<script> //建立表格 var table = document.createElement("table"); table.border = "1"; table.width = "100%"; //建立tbody var tbody = document.createElement("tbody"); table.appendChild(tbody); //建立第一行 tbody.insertRow(0); tbody.rows[0].insertCell(0); tbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1")); tbody.rows[0].insertCell(1); tbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1")); //建立第二行 tbody.insertRow(1); tbody.rows[1].insertCell(0); tbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2")); tbody.rows[1].insertCell(1); tbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2")); //將表格新增到文件主體中 document.body.appendChild(table); </script>