JS实现table表格数据排序---001

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="jquery/style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery-1.8.3.min.js?version=1"></script>
<script>
$(function(){
var tableObject = $('#tableSort');
var tbHead = tableObject.children('thead');
var tbHeadTh = tbHead.find('tr th');
var tbBody = tableObject.children('tbody');
var tbBodyTr = tbBody.find('tr');
var sortIndex = -1;

tbHeadTh.each(function(){
var thisIndex = tbHeadTh.index($(this));

$(this).click(function(){
checkColumnValue(thisIndex);
});
});

function checkColumnValue(index){
var trsValue = new Array();

tbBodyTr.each(function(){
var tds = $(this).find('td');
trsValue.push($(tds[index]).html() + ".separrator" + $(this).html());
$(this).html("");
});
var len = trsValue.length;

if (index == sortIndex){
trsValue.reverse();
} else {
for (var i = 0; i < len; i++) {
for( var j = i + 1; j < len; j++) {
value1 = trsValue[i].split(".separrator")[0];
value2 = trsValue[j].split(".separrator")[0];
if (value1.localeCompare(value2) > 0) {
var temp = trsValue[i];
trsValue[i] = trsValue[j];
trsValue[j] = temp;
}
}

}
}
for (var i = 0; i < len; i++) {
$("tbody tr:eq(" + i + ")").html(trsValue[i].split(".separrator")[1]);
}
sortIndex = index;

}
});
</script>
</head>
<body>
<div class="wrap">


<table id="tableSort" border="1">
<thead>
<tr>
<th>aaa </th>
<th>id </th>
<th>fff </th>
<th>dd </th>
<th>fffff </th>
</tr>
</thead>
<tbody>
<tr>
<td>aa</td>
<td>2256</td>
<td>8800</td>
<td>54</td>
<td>73</td>
</tr>
<tr>
<td>sss</td><td>2011</td><td>5900</td><td>71</td><td>52</td>
</tr>
<tr>
<td>11.22.33.44</td><td>99.99</td><td>5900</td><td>71</td><td>52</td>
</tr>
<tr>
<td>22.22.33.44</td><td>20.11</td><td>5900</td><td>71</td><td>52</td>
</tr>
<tr>
<td>33.22.33.44</td><td>888.88</td><td>5900</td><td>71</td><td>52</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
在 Vue.js 中,可以使用 Element UI 中的 el-table 表格组件来实现表格排序。el-table 组件提供了一个 sortable 属性,可以设置表格排序方式。 以下是一个简单的 el-table 表格排序实现示例: HTML代码: ``` <template> <div> <el-table :data="tableData" :sortable="true"> <el-table-column prop="name" label="姓名" sortable></el-table-column> <el-table-column prop="age" label="年龄" sortable></el-table-column> <el-table-column prop="gender" label="性别" sortable></el-table-column> </el-table> </div> </template> ``` JavaScript代码: ``` <script> export default { data() { return { tableData: [ { name: '张三', age: 20, gender: '男' }, { name: '李四', age: 22, gender: '男' }, { name: '王五', age: 18, gender: '女' } ] } } } </script> ``` 在 el-table 组件中,设置 sortable 属性为 true,然后在每一个 el-table-column 列中设置 sortable 属性即可完成表格排序的功能。在 el-table-column 中设置 prop 属性为表格数据源中的对应属性名,设置 label 属性为列名。 如果需要对表格数据进行默认排序,可以在 el-table 组件中设置 sort-by 和 sort-direction 属性。sort-by 属性为表格数据源中的对应属性名,sort-direction 属性为排序方向,值为 ascending(升序)或 descending(降序)。 ``` <el-table :data="tableData" :sortable="true" :sort-by="'age'" sort-direction="ascending"> ``` 需要注意的是,el-table数据源必须是一个数组,每个元素都是一个对象,对象的属性名对应每一列的 prop 属性值。 这样,就可以通过 el-table 表格组件快速方便地实现表格排序功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值