2014-09-19 51 views
1

我有一個比賽結果http://bhaa.ie/events/eircom-2014表,其中年齡類別和與年齡類別的位置顯示在一個列上。年齡類別具有SM,35M,40M,...,85M的值。 p0x表示該類別內的跑步者位置。jquery tablesorter - 字母數字排序優先

SM p01 
35M p01 
SM p02 
45M p01 

默認此刻排序給予優先於35 categoty,即

35M p01 
45M p01 
SM p01 
SM p02 

我寧願爲SM(即高級男裝)首次出現在排序順序

SM p01 
SM p02 
35M p01 
45M p01 

這可能與jQuery tablesorter?

回答

1

只需使用custom parser進行排序,像這樣:

$.tablesorter.addParser({ 
    id: 'age', 
    is: function(s) { 
     return false; 
    }, 
    format: function(s) { 
     return (s === 'SM' ? 0 : parseInt(s.replace('M', ''), 10)); 
    }, 
    type: 'numeric' 
}); 

$(function() { 
    $("table").tablesorter({ 
     headers: { 
      0: { 
       sorter:'age' 
      } 
     } 
    }); 
});     

的完整代碼可在jsfiddle。 點擊t0頭在行動中看到排序

0

如果您使用我的fork of tablesorter,您可以設置stringTo optionmin迫使字母字符總是排序前的最低數量(demo):

$(function() { 
    $('table').tablesorter({ 
     theme: 'blue', 
     stringTo: "min", 
     headers: { 
      4: { 
       sorter: 'digit' 
      } 
     } 
    }); 
}); 

另外,headers選項設置爲確保將列設置爲使用數字解析器而不是文本解析器,因爲「S」位於第一行,因此該列被檢測爲文本列。