开发者社区> 问答> 正文

jquery datatable 排序问题

screenshot
见图,排序出现问题.
请高手指教,如何满足字符加数字的排序功能(使用的是jquery datatable插件).万分感谢!

展开
收起
a123456678 2016-07-11 11:19:49 3209 0
1 条回答
写回答
取消 提交回答
  • jQuery.fn.dataTableExt.oSort['numeric-comma-asc']  = function(a,b) { 
            a = a.replace(/[ ]/g,"") 
            b = b.replace(/[ ]/g,"") 
    
    
            if(a.indexOf(",") != -1){a = a.replace(/\,/g, "")} 
            if(b.indexOf(",") != -1){b = b.replace(/\,/g, "")} 
            if(a.indexOf("'") != -1){a = a.replace(/\'/g, "")} 
            if(b.indexOf("'") != -1){b = b.replace(/\'/g, "")} 
            if(a.indexOf(" ") != -1){a = a.replace(/ /g, "")} 
            if(b.indexOf(" ") != -1){b = b.replace(/ /g, "")} 
    
    
            var a1 = a.slice(0,3) 
            var a2 = a.slice(3) 
            var b1 = b.slice(0,3) 
            var b2 = b.slice(3) 
            return ((a1 < b1) ? -1 : ((a1 > b1) ?  1 : (parseFloat(a2) < parseFloat(b2)) ? -1 : (parseFloat(a2) > parseFloat(b2)) ? 1 : 0)) 
        };
    
    
    jQuery.fn.dataTableExt.oSort['numeric-comma-desc']  = function(a,b) {
            a = a.replace(/[ ]/g,"")
            b = b.replace(/[ ]/g,"")
    
    
            if(a.indexOf(",") != -1){a = a.replace(/\,/g, "")}
            if(b.indexOf(",") != -1){b = b.replace(/\,/g, "")}
            if(a.indexOf("'") != -1){a = a.replace(/\'/g, "")}
            if(b.indexOf("'") != -1){b = b.replace(/\'/g, "")}
            if(a.indexOf("&nbsp;") != -1){a = a.replace(/&nbsp;/g, "")}
            if(b.indexOf("&nbsp;") != -1){b = b.replace(/&nbsp;/g, "")}
    
    
            var a1 = a.slice(0,3)
            var a2 = a.slice(3)
            var b1 = b.slice(0,3)
            var b2 = b.slice(3)
            return ((a1 < b1) ? 1 : ((a1 > b1) ?  -1 : (parseFloat(a2) < parseFloat(b2)) ? 1 : (parseFloat(a2) > parseFloat(b2)) ? -1 : 0))
    };
    // 以上是我自定义的排序方法
    
    //这里开始初始化
    $('#example').dataTable({
    
        'aoColumns': [
        {'sTitle':'Counter part'},
        {'sTitle':'Type'},
        {'sTitle':'Amount',  'sType': 'numeric-comma'},  //这里指定那一列使用自定义排序方法
        {'sTitle':'Converted amount', 'sType': 'numeric-comma'},
        {'sTitle':'All in amount', 'sType': 'numeric-comma'},
        {'sTitle':'All-in rate'},
        {'sTitle':"Bank's all-in rate"},
        {'sTitle':'Trade date'},
        {'sTitle':'Value date'},
        {'sTitle':'Reference'},
        {'sTitle':'Status'}
    ];
    
    });
    2019-07-17 19:54:04
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载