jQueryプラグインのtablesorterでうまくソートされない対処
文字列(数字 + 半角英字)をtablesorterでソートしようとした際に、
- 数字
- 英字
の順に、、、
例)
- 012abc
- 013abc
- 123abc
の順で並んでほしいが、
- 012abc
- 123abc
- 013abc
の順で並んでしまう
ソートの方法を明示的に記載することで解決した
$("table").tablesorter({
headers: {
0: { sorter: '任意のパーサIDなど' },
1: { sorter: '任意のパーサIDなど' },
2: { sorter: '任意のパーサIDなど' }
}, textSorter: {
2: $.tablesorter.sortText, // 正しくソートしてほしい項目の列番号を記載(ゼロスタート)
},
});
textSorterにソートしてほしい項目の列番号をキーにして、$.tablesorter.sortTextと記載する
考察だけれども、本ライブラリのソートの方法で、デフォルトでは「sortNatural」といったソート方法を優先的にとっているからっぽい
これは数値のみを抜粋して評価・ソートしている感じだった
「sortText」とすることで、文字列としての評価をしてくれるのではないかなあと思った