第一次使用jQuery:
我正在使用tablesorter对表格进行排序。它的排序数字很奇怪。以下是按降序排序的示例:
我尝试了一些操作,例如将“{sorter:'digit'}”类添加到元素并添加left padding,但不确定为什么会发生这样的事情。项目中的另一个表与tablesorter完美配合。
我的代码如下:
$('#timeSeriesTable' + this.chartId).tablesorter({
widgets: ["filter", "zebra"],
widgetOptions: {
// if true, a filter will be added to the top of each table column;
// disabled by using -> headers: { 1: { filter: false } } OR add class="filter-false"
// if you set this to false, make sure you perform a search using the second method below
filter_columnFilters: true,
// Hide filter boxes by default.
filter_hideFilters: true,
// Set this option to false to make the searches case sensitive
filter_ignoreCase: true,
// if true, search column content while the user types (with a delay)
filter_liveSearch: true,
// Use the $.tablesorter.storage utility to save the most recent filters (default setting is false)
filter_saveFilters: false,
// Delay in milliseconds before the filter widget starts searching; This option prevents searching for
// every character while typing and should make searching large tables faster.
filter_searchDelay: 300,
// Applies style to columns
zebra: ["normal-row", "alt-row"]
},
sortList: this.sortingList
});
感谢您的帮助。
更新:我确实发现排序基本上忽略了逗号之后的任何数字。我看到了类似的问题here并尝试添加自定义解析器,但它似乎仍无法正常工作。
采取的步骤: 1.添加自定义解析器
$.tablesorter.addParser({
id: "humanReadableNumber",
is: function (s) {
return /^[\d,]+$/.test(s);
}, format: function (s) {
return s.replace(/,/g, '');
}, type: "numeric"
});
答案 0 :(得分:0)
回答此问题以防其他人受益:
我最终添加了一个解析器来处理逗号分隔的数字,然后将其作为类添加到<td>
元素中。
自定义解析器代码:
$.tablesorter.addParser({
id: "commaSeparatedNumber",
is: function (s) {
return /^[0-9]?[0-9,\.]*$/.test(s);
},
format: function (s) {
return $.tablesorter.formatFloat(s.replace(/,/g, ''));
},
type: "numeric"
});
以下是将上述解析器添加到我的<td>
元素中的代码:
td.addClass("sorter-commaSeparatedNumber");