首頁 web前端 前端問答 javascript怎麼寫表格

javascript怎麼寫表格

May 12, 2023 pm 08:09 PM

在前端開發中,表格是很常見的元素之一。利用JavaScript可以動態地產生表格,方便了我們對表格的控制與操作。以下介紹一些常見的方法和技巧,來幫助大家更好地寫JavaScript表格。

  1. 基本表格的建立與修改

表格是由HTML標籤<table>、<thead>、<tbody>、<tfoot>、<thead>、<tbody>、<tfoot>、&lt ;tr>、<th>和<td>來定義的。如果要動態地建立表格,可以透過新增這些標籤的方式來產生表格。

以下是一個簡單的範例:

&lt;table id=&quot;myTable&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Name&lt;/th&gt;
      &lt;th&gt;Age&lt;/th&gt;
      &lt;th&gt;City&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;John&lt;/td&gt;
      &lt;td&gt;25&lt;/td&gt;
      &lt;td&gt;New York&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Jane&lt;/td&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;Los Angeles&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
登入後複製

建立表格後,就可以對表格進行修改。例如,可以新增新的行和列:

var table = document.getElementById(&quot;myTable&quot;);
var row = table.insertRow(2);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = &quot;Bob&quot;;
cell2.innerHTML = &quot;40&quot;;
cell3.innerHTML = &quot;Chicago&quot;;
登入後複製

上述程式碼在表格中新增了一行,並在每個儲存格中填寫了資訊。

  1. 根據資料產生表格

在實際開發中,我們可能需要根據一些資料動態地產生表格。假設我們有一個JSON數組,包含了一些學生的信息,那麼可以透過遍歷該數組,動態地產生表格。

以下是一個範例:

var students = [
  {name: &quot;John&quot;, age: 25, city: &quot;New York&quot;},
  {name: &quot;Jane&quot;, age: 30, city: &quot;Los Angeles&quot;},
  {name: &quot;Bob&quot;, age: 40, city: &quot;Chicago&quot;}
];
var table = document.createElement(&quot;table&quot;);
var thead = document.createElement(&quot;thead&quot;);
var tbody = document.createElement(&quot;tbody&quot;);
var tr = document.createElement(&quot;tr&quot;);
for (var key in students[0]) {
  var th = document.createElement(&quot;th&quot;);
  th.innerHTML = key.charAt(0).toUpperCase() + key.slice(1);
  tr.appendChild(th);
}
thead.appendChild(tr);
table.appendChild(thead);
for (var i = 0; i &lt; students.length; i++) {
  var tr = document.createElement(&quot;tr&quot;);
  for (var key in students[i]) {
    var td = document.createElement(&quot;td&quot;);
    td.innerHTML = students[i][key];
    tr.appendChild(td);
  }
  tbody.appendChild(tr);
}
table.appendChild(tbody);
document.body.appendChild(table);
登入後複製

上述程式碼首先建立了一個包含表格的DOM元素,然後分別建立了表頭和表身。在遍歷JSON數組的過程中,分別依照表頭和表身的格式,一行一行地加入元素。

要注意的是,程式碼中加粗的部分是用來將每個key的首字母大寫的運算。

  1. 表格排序

表格排序是很常見的操作之一。可以透過JavaScript來實現表格的排序。

以下是一個範例:

function sortTable(n) {
  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
  table = document.getElementById(&quot;myTable&quot;);
  switching = true;
  dir = &quot;asc&quot;;
  while (switching) {
    switching = false;
    rows = table.rows;
    for (i = 1; i &lt; (rows.length - 1); i++) {
      shouldSwitch = false;
      x = rows[i].getElementsByTagName(&quot;td&quot;)[n];
      y = rows[i + 1].getElementsByTagName(&quot;td&quot;)[n];
      if (dir == &quot;asc&quot;) {
        if (x.innerHTML.toLowerCase() &gt; y.innerHTML.toLowerCase()) {
          shouldSwitch = true;
          break;
        }
      } else if (dir == &quot;desc&quot;) {
        if (x.innerHTML.toLowerCase() &lt; y.innerHTML.toLowerCase()) {
          shouldSwitch = true;
          break;
        }
      }
    }
    if (shouldSwitch) {
      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
      switching = true;
      switchcount ++;
    } else {
      if (switchcount == 0 &amp;&amp; dir == &quot;asc&quot;) {
        dir = &quot;desc&quot;;
        switching = true;
      }
    }
  }
}
登入後複製

以上程式碼實作了一個依照表格某列進行排序的函數。傳入參數n表示要排序的列數。

  1. 表格篩選

表格篩選也是常見的運算。可以透過JavaScript來篩選表格中的資料。

以下是一個例子:

function filterTable() {
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById(&quot;myInput&quot;);
  filter = input.value.toUpperCase();
  table = document.getElementById(&quot;myTable&quot;);
  tr = table.getElementsByTagName(&quot;tr&quot;);
  for (i = 0; i &lt; tr.length; i++) {
    td = tr[i].getElementsByTagName(&quot;td&quot;)[0];
    if (td) {
      txtValue = td.textContent || td.innerText;
      if (txtValue.toUpperCase().indexOf(filter) &gt; -1) {
        tr[i].style.display = &quot;&quot;;
      } else {
        tr[i].style.display = &quot;none&quot;;
      }
    }
  }
}
登入後複製

以上程式碼實作了一個根據輸入框中的值來篩選表格資料的函數。透過取得使用者輸入框中的值,然後在表格中遍歷每個儲存格的內容,如果內容包含了使用者輸入的值,就保留該行數據,否則將其隱藏。

綜上,以上是一些常用的JavaScript程式碼,幫助大家更方便地控制和操作表格。當然,在實際開發中,還有更多的技巧和方法,希望大家多多探索和嘗試。

以上是javascript怎麼寫表格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解釋懶惰加載的概念。 解釋懶惰加載的概念。 Mar 13, 2025 pm 07:47 PM

解釋懶惰加載的概念。

什麼是使用效果?您如何使用它執行副作用? 什麼是使用效果?您如何使用它執行副作用? Mar 19, 2025 pm 03:58 PM

什麼是使用效果?您如何使用它執行副作用?

咖哩如何在JavaScript中起作用,其好處是什麼? 咖哩如何在JavaScript中起作用,其好處是什麼? Mar 18, 2025 pm 01:45 PM

咖哩如何在JavaScript中起作用,其好處是什麼?

反應和解算法如何起作用? 反應和解算法如何起作用? Mar 18, 2025 pm 01:58 PM

反應和解算法如何起作用?

JavaScript中的高階功能是什麼?如何使用它們來編寫更簡潔和可重複使用的代碼? JavaScript中的高階功能是什麼?如何使用它們來編寫更簡潔和可重複使用的代碼? Mar 18, 2025 pm 01:44 PM

JavaScript中的高階功能是什麼?如何使用它們來編寫更簡潔和可重複使用的代碼?

什麼是Usecontext?您如何使用它在組件之間共享狀態? 什麼是Usecontext?您如何使用它在組件之間共享狀態? Mar 19, 2025 pm 03:59 PM

什麼是Usecontext?您如何使用它在組件之間共享狀態?

受控和不受控制的組件的優點和缺點是什麼? 受控和不受控制的組件的優點和缺點是什麼? Mar 19, 2025 pm 04:16 PM

受控和不受控制的組件的優點和缺點是什麼?

說明每個生命週期方法及其用例的目的。 說明每個生命週期方法及其用例的目的。 Mar 19, 2025 pm 01:46 PM

說明每個生命週期方法及其用例的目的。

See all articles