mottie tablesorter:强制排序文本(不是自然排序)

mottie tablesorter: force sortText (NOT sortNatural)

我做了一个像这样的自定义解析器:

    $.tablesorter.addParser({
        id: 'custom-sort-value',
        is: function(s) {
            // return false so this parser is not auto detected
            return false;
        },
        format: function(s, table, cell, cellIndex) {
            return $(cell).data('sort-value').toString();
        },
        type: 'text'
    });

但是,我注意到它最终使用了 tablesorter 函数 sortNatural(因为 type: 'text')。但是,我需要它来进行基本的字母排序,比如 tablesorter 的 sortText (我不能让它拆分字符串并比较每个拆分)。有什么办法可以强制它这样做吗?

因此,您不需要自定义解析器即可从属性中获取文本。 tablesorter 的分支尝试从 data-text 获取自定义排序字符串(可以通过将 textAttribute option), but only when the textExtraction option 设置为 "basic" (默认设置)进行修改。

因此,要使用基本 sortText 排序,请使用 textSorter option 按列设置自定义排序功能:

$(function(){
  $("table").tablesorter({
    textSorter : {
      // replace INDIVIDUAL COLUMN text sorter functions
      0 : function(a, b, direction, columnIndex, table){
        // same as $.tablesorter.sortText (basic alphabetical sort)
        // direction: true = ascending; false = descending
        // columnIndex: zero-based index of the current table column being sorted
        // table: table DOM element (access options by using table.config)
        return a > b ? 1 : (a < b ? -1 : 0);
      },
      1 : $.tablesorter.sortText,    // same as the function in column 0 above (modified in v2.12)
      2 : $.tablesorter.sortNatural, // renamed v2.12 from $.tablesorter.sortText - performs natural sort
      3 : Array.AlphanumericSort     // alphanumeric sort from sugar (http://sugarjs.com/arrays#sorting)
    }
  });
});