DOM操作表格
阿新 • • 發佈:2017-05-08
div 重寫 ble 修改 復雜 tle 核心 主體 tab
前面的話
表格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);
DOM操作表格