如果混合数字和文本,Tablesorter 插件无法正确排序列
Posted
技术标签:
【中文标题】如果混合数字和文本,Tablesorter 插件无法正确排序列【英文标题】:Tablesorter plugin not sorting correctly colum if mixed digits and text 【发布时间】:2012-03-15 15:31:18 【问题描述】:如果您查看这个 JS 小提琴:http://jsfiddle.net/DE5Bp 并尝试对我想按第一个数字(例如分钟)排序的 Tariff 列进行排序。
我该如何解决这个问题?
你可以看到我试图用<span class="hide">
欺骗插件,尽管这并没有解决问题。
更新:http://jsfiddle.net/6jAyF/ 这个版本强制sorter:"integer"
【问题讨论】:
【参考方案1】:我相信您想使用带有 type: numeric 的 addParser 来使其工作。这是来自http://tablesorter.com/docs/example-parsers.html 的代码 sn-p,它使用数字排序器。
// add parser through the tablesorter addParser method
$.tablesorter.addParser(
// set a unique id
id: 'grades',
is: function(s)
// return false so this parser is not auto detected
return false;
,
format: function(s)
// format your data for normalization
return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);
,
// set type, either numeric or text
type: 'numeric'
);
$(function()
$("table").tablesorter(
headers:
6:
sorter:'grades'
);
);
【讨论】:
正是我想要的。令人惊讶的是,这不是默认内置在插件中的。为了完全解决我的问题,我需要得到第一个号码***.com/questions/609574/… @JohnMagnolia 您可能只想在自定义解析器中使用parseInt()
来正确排序您的值 - demo。以上是关于如果混合数字和文本,Tablesorter 插件无法正确排序列的主要内容,如果未能解决你的问题,请参考以下文章
jQuery TableSorter 仅适用于 ID(数字字段),不适用于文本、日期等其他字段