如何使用 JavaScript 實作表格排序功能?
在現代網頁開發中,表格是常見的展示資料的方式之一。而對表格進行排序是一個重要的功能,可以幫助使用者快速找到相關的資料。在這篇文章中,我們將學習如何使用 JavaScript 實作表格排序功能,並提供具體的程式碼範例。
首先,我們需要一個包含資料的表格。假設我們的表格有三列,分別是 "姓名","年齡" 和 "城市"。在 HTML 中建立表格的程式碼如下:
<table id="myTable"> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>城市</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>25</td> <td>北京</td> </tr> <tr> <td>李四</td> <td>30</td> <td>上海</td> </tr> <tr> <td>王五</td> <td>22</td> <td>广州</td> </tr> <!-- 更多的数据行... --> </tbody> </table>
接下來,我們將使用 JavaScript 實作表格排序功能。
首先,我們需要取得到表格的參考。我們可以使用 getElementById
方法來取得表格元素。
var table = document.getElementById("myTable");
然後,我們需要為表格的每一列新增點擊事件,當使用者點擊某一列的表頭時,將觸發排序函數。
var th = table.getElementsByTagName("th"); for (var i = 0; i < th.length; i++) { th[i].addEventListener("click", function() { sortTable(table, i); }); }
接下來,讓我們實作排序函數 sortTable
。此函數將接收兩個參數,一個是表格元素,另一個是要排序的列的索引。
function sortTable(table, column) { var rows = Array.from(table.getElementsByTagName("tr")); rows.sort(function(a, b) { var cellA = a.getElementsByTagName("td")[column]; var cellB = b.getElementsByTagName("td")[column]; var valueA = cellA.innerText || cellA.textContent; var valueB = cellB.innerText || cellB.textContent; if (valueA < valueB) { return -1; } else if (valueA > valueB) { return 1; } else { return 0; } }); for (var i = 0; i < rows.length; i++) { table.appendChild(rows[i]); } }
在這個排序函數中,我們首先使用了 Array.from
方法將 HTMLCollection
類型的表格行轉換為陣列。然後,我們使用 sort
方法來對陣列進行排序。排序操作使用了 innerText
或 textContent
屬性來取得表格單元格的文字內容,並進行比較。最後,我們將排序後的行重新新增到表格中,以完成排序。
以下是完整的範例程式碼:
表格排序示例 <script> function sortTable(table, column) { var rows = Array.from(table.getElementsByTagName("tr")); rows.sort(function(a, b) { var cellA = a.getElementsByTagName("td")[column]; var cellB = b.getElementsByTagName("td")[column]; var valueA = cellA.innerText || cellA.textContent; var valueB = cellB.innerText || cellB.textContent; if (valueA < valueB) { return -1; } else if (valueA > valueB) { return 1; } else { return 0; } }); for (var i = 0; i < rows.length; i++) { table.appendChild(rows[i]); } } window.onload = function() { var table = document.getElementById("myTable"); var th = table.getElementsByTagName("th"); for (var i = 0; i < th.length; i++) { th[i].addEventListener("click", function() { sortTable(table, i); }); } }; </script>
姓名 | 年龄 | 城市 |
---|---|---|
张三 | 25 | 北京 |
李四 | 30 | 上海 |
王五 | 22 | 广州 |
透過以上的程式碼範例,我們學習了如何使用JavaScript 實作表格排序功能。透過為表格的表頭新增點擊事件,並在事件處理函數中呼叫排序函數,我們可以實現根據不同列排序的功能。這樣,使用者就可以方便地對表格進行排序,以便更快找到目標資料。希望本文對您有幫助,謝謝閱讀!
以上是如何使用 JavaScript 實作表格排序功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!