html table标签 如何筛选排序,举例说明一下
时间: 2023-11-02 18:13:01 浏览: 159
感谢您的提问。我理解您的问题是关于如何使用html table标签进行筛选排序的。
对于这个问题,您可以使用JavaScript代码来实现。首先,您需要定义一个可以触发排序的按钮,并使用JavaScript来捕获点击事件。然后,您需要使用DOM(文档对象模型) API 将表格中的行转换为数组,并将其根据需要排序。最后,您需要将排序后的数组重新插入到表格中。
以下是一个简单的示例代码,它根据表格头部的某一列中的数字进行升序和降序排序。您可以根据需要修改代码。
```html
<table>
<thead>
<tr>
<th>Name</th>
<th onclick="sortTable(1)">Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>5000</td>
</tr>
<tr>
<td>Jane</td>
<td>8000</td>
</tr>
<tr>
<td>James</td>
<td>3000</td>
</tr>
</tbody>
</table>
<script>
function sortTable(column) {
var table = document.querySelector("table");
var rows = Array.from(table.rows).slice(1); // 除表头外的所有行
var ascending = true; // 默认升序排序
rows.sort(function(row1, row2) {
var val1 = parseInt(row1.cells[column].textContent);
var val2 = parseInt(row2.cells[column].textContent);
if (isNaN(val1)) return -1; // 非数字值排在前面
if (isNaN(val2)) return 1;
return ascending ? val1 - val2 : val2 - val1;
});
ascending = !ascending; // 翻转排序顺序
rows.forEach(function(row) { table.tBodies[0].appendChild(row); });
}
</script>
```
在此示例中,我们定义了一个触发排序的表头单元格,它调用`sortTable(1)`函数来对第二列进行排序。然后,我们使用`Array.from()`方法将表格的行转换为数组,并使用`slice(1)`方法排除表头。我们使用`sort()`方法对行数组进行排序,排序函数比较单元格内的数字值。最后,我们根据需要翻转排序顺序,并使用`appendChild()`方法将排序后的行重新插入到表格中。
希望这个答案可以帮助您解决您的问题。如果您有任何进一步的问题,请随时问我。
阅读全文