Javascript執行個體教程:DOM方法建立和修改表格

來源:互聯網
上載者:User

文章簡介:Javascript執行個體教程:DOM方法建立和修改表格.

<table>元素是HTML中最複雜的結構之一。要想建立表格,一般都必須涉及表示表格行、儲存格、表頭等方面的標籤。由於涉及的標籤多,因而使用核心DOM方法建立和修改表格往往都免不了要編寫大量的代碼。假設我們要使用DOM來建立下面的HTML表格:

<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>

要是用核心DOM方法建立這些元素,得需要像下面這麼多的代碼:

//建立tablevar table = document.createElement("table");table.border = 1;table.width = "100%";//建立tbodyvar 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>元素添加了一些屬性和方法。

為<table>元素添加的屬性和方法如下:

  • caption:儲存這對<caption>元素(如果有)的指標;
  • tBodies:是一個<tbody>元素的HTMLCollection;
  • tFoot:儲存著對<tfoot>元素(如果有)的指標;
  • tHead:儲存著對<thead>元素(如果有)的指標
  • rows:是一個表格中所有行的HTMLCollection;
  • createTHead():建立<thead>元素,將其放到表格中,返回引用;
  • createTFoot():建立<tfoot>元素,將其放到表格中,返回引用;
  • createCaption();建立<caption>元素,將其放到表格中,返回引用;
  • deleteTHead();刪除<thead>元素;
  • deleteTFoot();刪除<tfoot>元素;
  • deleteCaption():刪除<caption>元素;
  • deleteRow(pos):刪除指定位置的行;
  • insertRow(pos):向rows集合中的指定位置插入一行。

為<tbody>元素添加屬性和方法有:

  • rows:儲存著<tbody>元素中行的HTMLCollection;
  • deleteRow(pos):刪除制定位置的行;
  • insertRow(pos):向rows集合中的指定位置插入一行,返回對新插入行的引用。

為<tr>元素添加的屬性和方法如下:

  • cells:儲存著<tr>元素中儲存格的HTMLCollection;
  • deleteCell(pos):刪除指定位置的儲存格;
  • insertCell(pos):向cells集合中的指定位置插入一個儲存格,返回新插入儲存格的引用。

使用這些屬性和方法,可以極大的減少建立報個所需要的代碼數量。例如,使用這些屬性和方法可以將前面的代碼重寫如下:

//建立tablevar table = document.createElement("table");table.border = 1;table.width = "100%";//建立tbodyvar 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);

在這次代碼中,建立<table>和<tbody>的代碼沒有變化。不同是建立兩行的部分,其中使用了HTML DOM定義的表格屬性和方法。在建立第一行時,通過<tbody>元素調用了insertRow()方法,傳入了參數0——表示應該插入的行放在什麼位置上。執行這一樣的代碼後,就會自動建立一行並將其插入到<tbody>元素的位置0上。因此馬上就可以通過tbody.rows[0]來引用新插入的行。

建立儲存格的方式也十分相似,即通過<tr>元素調用insertCell()方法並傳入放置儲存格的位置。然後,就可以通過tbody.rows[0].cells[0]來引用新插入的儲存格,因為新建立的儲存格被插入到了這一行的位置0上。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.