質問

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 は文字列を返します。おそらく、値を返す前に値を文字列に変換して戻しますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top