これが私のカスタムパーサーです:
$.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>