📅  最后修改于: 2023-12-03 15:23:32.786000             🧑  作者: Mango
在网页开发中,我们经常需要对表格中的数据进行排序,以便用户更方便地查看和使用。本文将介绍如何在引导程序中使用 HTML 实现排序列。
本文所示的排序列代码适用于以下环境:
首先,我们需要添加表格的 HTML 布局和引导程序的样式。
<table class="table table-striped table-bordered">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col" data-sortable="true">Name</th>
<th scope="col" data-sortable="true">Age</th>
<th scope="col" data-sortable="true">Gender</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>John</td>
<td>23</td>
<td>Male</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jane</td>
<td>32</td>
<td>Female</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Michael</td>
<td>27</td>
<td>Male</td>
</tr>
</tbody>
</table>
表头中,我们需要添加 data-sortable 属性,以标明哪些列需要排序。在表格中添加了一些样例数据,以便测试排序功能。
接下来,我们需要使用 jQuery 编写排序逻辑。我们将在页面加载时执行以下代码:
$(document).ready(function() {
// 按名称排序
$('th[data-sortable="true"]:eq(0)').click(function() {
sortTable(0);
});
// 按年龄排序
$('th[data-sortable="true"]:eq(1)').click(function() {
sortTable(1);
});
// 按性别排序
$('th[data-sortable="true"]:eq(2)').click(function() {
sortTable(2);
});
// 默认按名称排序
sortTable(0);
});
我们为每个允许排序的表头单元格添加 click 事件,并调用名为 sortTable 的函数,以实际执行排序操作。
下面是 sortTable 函数的代码:
function sortTable(columnIndex) {
var table = $('table');
var rows = $('tbody > tr', table);
rows.sort(function(a, b) {
var aValue = $(a).find('td:eq(' + columnIndex + ')').text();
var bValue = $(b).find('td:eq(' + columnIndex + ')').text();
return aValue.localeCompare(bValue);
});
$.each(rows, function(index, row) {
table.append(row);
});
}
sortTable 函数获取表格中所有行,并使用 jQuery 的 sort 函数根据所选列的值对它们进行重新排序。
sort 函数需要比较两个值,并返回一个负数、零或正数,以指示哪个值更小、相等或更大。在本例中,我们使用 localeCompare 函数比较两个字符串。
最后,我们将排序后的行逐一添加回表格中。
我们已经完成了在引导程序中排序列的实现。现在,我们可以在浏览器中加载 HTML 文件以测试它。单击表头中的“Name”、“Age”或“Gender”单元格,即可按所选列排序。单击相同表头单元格,可按相反顺序排序。
使用 HTML、Bootstrap 和 jQuery,我们可以快速创建交互式网页,并为表格添加排序功能。本文示例代码经过实际测试,可在现代浏览器中稳定运行。