gpt4 book ai didi

tablesorter - TableSorter 中的排序不正确

转载 作者:行者123 更新时间:2023-12-04 03:29:18 29 4
gpt4 key购买 nike

tablesorter 中的奇怪行为:

$(document).ready(function() { 
var timeInSec = function(node) { return $(node).attr("time") };
var sortDigit = { sorter : "digit" };

$("#agentRapport").tablesorter({
headers: {
1: sortDigit,
2: sortDigit
},
textExtraction: {
1: timeInSec,
2: timeInSec
},
sortList: [[1,1]]
});
});

生成的排序表如下所示(我自己对以下内容进行了排序,就像您在浏览器中看到的那样):

...
<tr>
<td>Banana</td>
<td time="1411252">23 min 31 sec</td>
<td time="352813">5 min 52 sec</td>
<td>4</td>
<td>225</td>
</tr>
<tr>
<td>Apple</td>
<td time="1391952">23 min 11 sec</td>
<td time="347988">5 min 47 sec</td>
<td>4</td>
<td>86</td>
</tr>
<tr>
<td>Plum</td>
<td time="1427192">23 min 47 sec</td>
<td time="356798">5 min 56 sec</td>
<td>4</td>
<td>119</td>
</tr>
<tr>
<td>Pear</td>
<td time="1381072">23 min 1 sec</td>
<td time="345268">5 min 45 sec</td>
<td>4</td>
<td>108</td>
</tr>
...

这是一个错误吗?

最佳答案

如果您使用的是来自 tablesorter.com 的原始表格排序器 (v2.0.5b),则上述代码将不起作用,因为 textExtraction 函数不允许定位特定列。

但是,您可以使用我的 fork of tablesorter这确实允许这个选项(demo)

fork 应该可以在没有任何额外功能的情况下工作,因为它也有一个字母数字排序(demo):

$(function () {
$("#agentRapport").tablesorter({
sortList: [
[1, 1]
]
});
});

但是如果你想继续使用原始版本的 tablesorter,你可以使用解析器,并避免将 time="#" 属性添加到每个单元格 (demo):

$.tablesorter.addParser({
id: "min&sec",
is: function (s) {
return false;
},
format: function (s, table) {
var min = (parseInt(s.match(/(\d+)(?:\s+min)/), 10) || 0) * 60,
sec = (parseInt(s.match(/(\d+)(?:\s+sec)/), 10) || 0);
return min + sec;
},
type: "numeric"
});

$(function () {

$("#agentRapport").tablesorter({
headers: {
1: { sorter: "min&sec" },
2: { sorter: "min&sec" }
},
sortList: [
[1, 1]
]
});
});

关于tablesorter - TableSorter 中的排序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807110/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com