JQ表格排序,数字排序

需求展示

最近做项目有个需要做排序的需求,整理记录一下,如有误或可以优化,请指点…

默认
情况一
情况二
需求如图,默认不排序,每次排序只以一列排序。

箭头图片

sort-upsort-up
sort-iconsort-icon
sort-downsort-down

代码展示

html:
含有sort-btn的th 都是带有筛选功能的表头

<thead>
	<tr>
		<th width="20%">基金简称</th>
		<th width="10%" class="md-hidden">基金代码</th>
		<th width="10%" class="md-hidden">净值日期</th>
		<th width="10%">单位净值</th>
		<th width="10%" class="md-hidden">累计净值</th>
		<th width="10%">
			<div class="flex-center">
				<div class="md-hidden">日涨跌</div>
			</div>
		</th>
		<th width="10%" class="md-hidden ws-years"><span class="sort-btn">近一年收益</span></th>
		<th width="10%" class="md-hidden"><span class="sort-btn">成立以来</span></th>
		<th width="10%" class="md-hidden">操作</th>
	</tr>
</thead>

js:

// 绑定点击事件
$("#audit_table .sort-btn").bind("click", function() {
	sortTable($(this),'#audit_table')
});

// 表格筛选方法封装
//tableId 筛选表格id 
//sort-down和sort-up是排序箭头方向
function sortTable(_this,tableId) {
	var arrData = $(tableId).find('tbody >tr:has(td)').get(),
		_index = $(_this).parents('th').index(),
		sortOrder = '';
		console.log($(_this).parents('th').index());
	if($(_this).hasClass("sort-up")||$(_this).hasClass("sort-down")){
		
	}else{
		$('.redkylin-pdt-list th span').removeClass("sort-down sort-up");
		$(_this).addClass("sort-down");
	}
	
	if($(_this).hasClass("sort-up")) {
		sortOrder = 'sort-up';
		$(_this).removeClass("sort-up").addClass("sort-down");
	} else {
		sortOrder = 'sort-down';
		$(_this).removeClass("sort-down").addClass("sort-up");
	}
    
    arrData.sort(function(a, b) {
        var v1 = parseFloat($(a).children('td').eq(_index).text()),
        	v2 = parseFloat($(b).children('td').eq(_index).text());		
        if(sortOrder && sortOrder=="sort-down") {
			return v1-v2;
        }else if(sortOrder && sortOrder=="sort-up"){
       		return v2-v1;
		}
    });

    $.each(arrData, function(index, row) {
        $(tableId +' tbody').append(row);
    });
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值