如果混合数字和文本,Tablesorter 插件无法正确排序列

Posted

技术标签:

【中文标题】如果混合数字和文本,Tablesorter 插件无法正确排序列【英文标题】:Tablesorter plugin not sorting correctly colum if mixed digits and text 【发布时间】:2012-03-15 15:31:18 【问题描述】:

如果您查看这个 JS 小提琴:http://jsfiddle.net/DE5Bp 并尝试对我想按第一个数字(例如分钟)排序的 Tariff 列进行排序。

我该如何解决这个问题?

你可以看到我试图用<span class="hide"> 欺骗插件,尽管这并没有解决问题。

更新:http://jsfiddle.net/6jAyF/ 这个版本强制sorter:"integer"

【问题讨论】:

【参考方案1】:

我相信您想使用带有 type: numeric 的 addParser 来使其工作。这是来自http://tablesorter.com/docs/example-parsers.html 的代码 sn-p,它使用数字排序器。

// add parser through the tablesorter addParser method 
$.tablesorter.addParser( 
    // set a unique id 
    id: 'grades', 
    is: function(s)  
        // return false so this parser is not auto detected 
        return false; 
    , 
    format: function(s)  
        // format your data for normalization 
        return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0); 
    , 
    // set type, either numeric or text 
    type: 'numeric' 
); 

$(function()  
    $("table").tablesorter( 
        headers:  
            6:  
                sorter:'grades' 
             
         
    ); 
);

【讨论】:

正是我想要的。令人惊讶的是,这不是默认内置在插件中的。为了完全解决我的问题,我需要得到第一个号码***.com/questions/609574/… @JohnMagnolia 您可能只想在自定义解析器中使用 parseInt() 来正确排序您的值 - demo。

以上是关于如果混合数字和文本,Tablesorter 插件无法正确排序列的主要内容,如果未能解决你的问题,请参考以下文章

jQuery TableSorter 仅适用于 ID(数字字段),不适用于文本、日期等其他字段

Tablesorter 两个寻呼机:未显示数字

Jquery排序分页插件tablesorter简介

jQuery tablesorter 页面插件不起作用

jQuery插件 tablesorter 表格排序 使用说明

jQuery插件 tablesorter 表格排序 使用说明