jQuery Tablesorter-カスタムパーサーが機能しない
-
07-07-2019 - |
質問
jQueryプラグインのカスタムパーサー Tablesorter を作成しようとしています。アイデアは、最初のクリックで数字を降順でソートすることです。
ただし、テーブルを並べ替えても順序は変わりません。いくつかの行が移動することもありますが、ほとんどは同じままです。コードは次のとおりです。
$.tablesorter.addParser({
id: 'desc',
is: function(s) { return false },
format: function(s) {
return 1.0 / parseFloat( s.replace(/,/g,'') );
},
type: 'numeric'
});
私が書いた他のパーサーは正常に動作しています。浮動小数点数(運が悪い)に問題がある場合に備えて、1.0の代わりに9999から数値を除算してみました。
解決
解決策を見つけました。各列にいくつかの空のセルがあり、「NaN」として解析されていました。なぜこれが順序を狂わせたのか、私にはわかりません(空白のセルが規則的な番号で断続的に間隔を空けられていたため、何も順序がありませんでした)。
要するに、このコードはformat関数で機能します:
format: function(s) {
if ( s == '' )
return 0;
return -parseInt( s.replace(/,/g,'') );
}
他のヒント
何かを逆の数値順にソートするには、私にとって自然な方法は、あなたが試した方法ではなく、それを-1で乗算することです。
パーサー自体に関して、私が気づく唯一の違いは、実際の数値を返すのに対して、 parser example は文字列を返します。おそらく、値を返す前に値を文字列に変換して戻しますか?
所属していません StackOverflow