我有一个问题,我的tablesorter列包含看起来像这样的数据,[20823,C420837,9823927,47-123,C47293]以及NoneType的空格 问题是当我尝试对它们进行排序(asc或desc)时,我的tablesort将所有数字类型组合在一起,然后我的其余数据按字母顺序按另一列中的字段排序。我想要将所有数据与所有NoneTypes一起排序,无论是在顶部还是在下面,而不是整个间隔。任何有关如何自定义排序此数据的帮助都将非常感激
编辑:我添加了自定义解析器
$.tablesorter.addParser({
// set a unique id
id: 'enumsos',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
return s.toString();
},
// set type, either numeric or text
type: 'text'
});
$(function() {
$("table").tablesorter({
headers: {
7: {
sorter:'enumsos'
}
}
});
});
现在我遇到了一个新问题,排序有效,但它只能对我的东西进行排序,这适用于所有列!发生了什么事?
答案 0 :(得分:0)
我不确定如何对47-123
值进行排序,但是如果您修改解析器以从内容中删除所有非数字值(小数点除外),那么只有数字值将排序(demo)
$.tablesorter.addParser({
// set a unique id
id: 'enumsos',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
return s.toString().replace(/[^\d.]/g, '');
},
// set type, either numeric or text
type: 'numeric'
});
$(function () {
$('table').tablesorter({
headers: {
0: {
sorter: 'enumsos'
}
}
});
});
对于空单元格,您可以使用emptyTo
option设置它们排序的位置,或者如果该列包含非数字字符串,例如" N / A"然后你可以使用stringTo
option,但首先需要修改上面的解析器而不是替换所有非数字。