5

これが私のカスタムパーサーです:

$.tablesorter.addParser({
    id: "customParser",
    is: function (stringValue) {
        return false;
    },
    format: function (stringValue) {
        var stringValueParts = stringValue.split("-");
        var numericPartOfStringValue = parseInt(stringValueParts[2]);
        return numericPartOfStringValue ;
    },
    type: 'numeric'
});

stringValue は次のような値になります。

  • ABC-DE-1
  • ABC-DE-10
  • ABC-DE-100
  • ABC-DE-101
  • ABC-DE-1000

テーブルソーターをセットアップし、カスタムソートパーサーを追加したコードは次のとおりです。

$(function() {
    $("#dataTable").tablesorter({
        headers: {
            3: {
                sorter: 'customParser'
            }
        }
    });
});

console.log(numericPartOfStringValue) を追加しましたが、すべての数値がコンソールに書き出されたため、パーサーが本来すべきことを行っているように見えます。

それで、私は何をしたいですか?

以下のように、値を文字列の数値部分でソートしたいと思います。

  • ABC-DE-1
  • ABC-DE-10
  • ABC-DE-100
  • ABC-DE-101
  • ABC-DE-1000

実際に何が起こっているのですか?

値は次のようにソートされています。

  • ABC-DE-1
  • ABC-DE-10
  • ABC-DE-100
  • ABC-DE-1000
  • ABC-DE-101

他に何を試しましたか?

以下をhtmlに追加しましたが、違いはありませんでした:

<th class="{sorter: 'CustomParser'}">
    String Value Column
</th>

そして最後に:

以下は、テーブル セルの値の例です。

<td>
    <span class="badge">ABC-DE-1</span>
</td>
4

1 に答える 1