Tablesorter 不排序“-”符号
Tablesorter does not sort "-" symbol
tablesorter 不适用于主题列,当列包含“-”时,例如:
Name Subject
Anton -
Max "dfdsrv"
Anna "fdsf"
但是如果我添加带有规范符号的字符串,它将正常工作!
Name Subject
Anton -
Max "<dfdsrv>"//correctly working
Anna "fdsf"
P.S 不幸的是,我们使用的是旧的 tablesorter 版本 2.0.5。
我该如何解决这个问题?我用“-”替换了空字符串,但它仍然不是 work.Maybe 我哪里弄错了?
textExtraction: function(node) {
if (node.innerHTML.text == "-"){
return " ";
}
}
这是默认设置的一个已知问题。 Tablesorter 支持对文本、URI、整数、货币、浮点数、IP 地址、日期(ISO、长格式和短格式)、时间进行排序的解析器。
要解决您的问题,您应该将 tablesorter 配置为使用 text parser
:
$(".tbl").tablesorter({
headers: {
0: { sorter:'text' }
}
});
http://tablesorter.com/docs/#Configuration
在更复杂的情况下(例如重新格式化、替换等),一种可行的方法是使用 $.tablesorter.addParser
方法向 tablesorter 添加自定义解析器。
这是问题的组合。
textExtraction
函数需要始终 return html:
- 正如@TheZenCoder所说,解析器需要设置为"text";这是因为“-”位于该列的第一个单元格中。解析器被设置为 "digit" 因为它认为“-”是一个负号。
这是完整的代码 (& demo):
$('table').tablesorter({
textExtraction: function (node) {
var txt = node.innerHTML;
if (txt == "-") {
return " ";
}
return txt;
},
headers : {
1: { sorter: 'text' }
}
});
* 注意:如果 table 单元格中有任何制表符、空格或其他格式,例如
<td>
-
</td>
那么您将需要 trim 结果以获得准确的比较:
var txt = $.trim( node.innerHTML );
if (txt == "-") {
tablesorter 不适用于主题列,当列包含“-”时,例如:
Name Subject
Anton -
Max "dfdsrv"
Anna "fdsf"
但是如果我添加带有规范符号的字符串,它将正常工作!
Name Subject
Anton -
Max "<dfdsrv>"//correctly working
Anna "fdsf"
P.S 不幸的是,我们使用的是旧的 tablesorter 版本 2.0.5。 我该如何解决这个问题?我用“-”替换了空字符串,但它仍然不是 work.Maybe 我哪里弄错了?
textExtraction: function(node) {
if (node.innerHTML.text == "-"){
return " ";
}
}
这是默认设置的一个已知问题。 Tablesorter 支持对文本、URI、整数、货币、浮点数、IP 地址、日期(ISO、长格式和短格式)、时间进行排序的解析器。
要解决您的问题,您应该将 tablesorter 配置为使用 text parser
:
$(".tbl").tablesorter({
headers: {
0: { sorter:'text' }
}
});
http://tablesorter.com/docs/#Configuration
在更复杂的情况下(例如重新格式化、替换等),一种可行的方法是使用 $.tablesorter.addParser
方法向 tablesorter 添加自定义解析器。
这是问题的组合。
textExtraction
函数需要始终 return html:- 正如@TheZenCoder所说,解析器需要设置为"text";这是因为“-”位于该列的第一个单元格中。解析器被设置为 "digit" 因为它认为“-”是一个负号。
这是完整的代码 (& demo):
$('table').tablesorter({
textExtraction: function (node) {
var txt = node.innerHTML;
if (txt == "-") {
return " ";
}
return txt;
},
headers : {
1: { sorter: 'text' }
}
});
* 注意:如果 table 单元格中有任何制表符、空格或其他格式,例如
<td>
-
</td>
那么您将需要 trim 结果以获得准确的比较:
var txt = $.trim( node.innerHTML );
if (txt == "-") {