这是我的自定义解析器:
$.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>