对table根据某个属性值进行排序

本文介绍了一种使用JavaScript实现的表格排序方法。通过获取DOM元素并利用数组的sort方法按年龄对表格进行排序,最后重新绘制页面展示排序结果。

问题:给定一个table如下,点击按钮根据年龄对表进行排序;

 1 <table border="" cellspacing="" cellpadding="">
 2     <tr><th>姓名</th><th>年龄</th></tr>
 3     <tr><td>a</td><td>2</td></tr>
 4     <tr><td>b</td><td>4</td></tr>
 5     <tr><td>c</td><td>5</td></tr>
 6     <tr><td>d</td><td>1</td></tr>
 7     <tr><td>e</td><td>3</td></tr>
 8 </table>
 9 <input type="button" value = "sort"/>

思路:

1.将dom中的tr放到数组中;

2.利用数组的sort方法排序;

3.排序完毕后用重绘页面;

 

代码如下:

 1 var btn = document.getElementsByTagName("input")[0];
 2 var trs = document.getElementsByTagName("tr");
 3 var arr = [];
 4 for(var i = 1;i<trs.length;i++){
 5     arr.push(trs[i]);
 6 }
 7 btn.onclick = function(){
 8     arr.sort(function(x,y){
 9         return x.getElementsByTagName("td")[1].innerHTML-y.getElementsByTagName("td")[1].innerHTML
10     }).forEach(function(i){
11         document.getElementsByTagName("table")[0].appendChild(i);
12     })
13     
14 }

 

转载于:https://www.cnblogs.com/liyonglong/p/6679963.html

在Jeecg Boot前端,如果你想要根据后端API返回的某个字段值动态地对表格进行排序,通常可以采用以下步骤: 1. **获取数据**:首先,在后端Controller中,处理请求并从数据库查询数据,可以根据需要的排序条件(例如,返回值`sortField`和`sortOrder`)进行排序。 ```java @GetMapping("/list") public ResultVo<List<YourEntity>> getList(@RequestParam(value = "sortField", defaultValue = "id") String sortField, @RequestParam(value = "sortOrder", defaultValue = "asc") String sortOrder) { // 实现排序逻辑,比如使用Spring Data JPA的@Sort注解 List<YourEntity> entities = yourRepository.findAll(Sort.by(Comparator.comparing(sortField).ascending())); // asc默认升序 // 或者 entities = yourRepository.findAll(Sort.by(Direction.fromString(sortOrder), sortField)); return new ResultVo<>(true, entities); } ``` 2. **传递数据**:将排序后的数据作为ModelAndView或ResultVo的一部分返回到前端。 3. **前端渲染**:在前端页面上,使用Vue.js、Angular或者其他前端框架,监听表单提交事件或者直接从API获取的数据,接收排序信息。 ```javascript methods: { handleSort(field, order) { axios.get('/list', { params: { sortField: field, sortOrder: order } }) .then(response => { this.dataList = response.data; // 假设dataList是存储数据的变量 this.tableData = this.dataList; // 更新表格数据 }); } } ``` 4. **更新表格**:最后,在前端模板中,使用JavaScript库如Element UI的table组件,设置`data`属性为刚刚排序好的`tableData`。 ```html <el-table :data="tableData" :sort-method="customSort"> <!-- 表格列和排序按钮 --> </el-table> <script> export default { methods: { customSort(row, column) { this.dataList.sort((a, b) => { if (column.order === 'asc') { return a[column.prop] > b[column.prop] ? 1 : -1; } else { return a[column.prop] < b[column.prop] ? 1 : -1; } }); this.tableData = this.dataList; } } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值