我目前使用的JQuery Tablesorter插件在这里找到:http://www.tablesorter.com,并且遇到包含日期和文本的列的问题。这里的的jsfiddle:如果您单击第一个名称字段标题使用tablesorter排序混合数据列
,也不会因为那种里面有一个随机的日期。我尝试强制文本排序,但它不起作用。有人有主意吗?
我目前使用的JQuery Tablesorter插件在这里找到:http://www.tablesorter.com,并且遇到包含日期和文本的列的问题。这里的的jsfiddle:如果您单击第一个名称字段标题使用tablesorter排序混合数据列
,也不会因为那种里面有一个随机的日期。我尝试强制文本排序,但它不起作用。有人有主意吗?
它看起来像你想设置使用元数据
<th class="{sorter: 'text'}">first name</th>
但在演示不加载插件的元数据分拣机类型。因此,要么加载metadata plugin,或者增加分拣机类型的头选项:
$("table").tablesorter({
headers: {
0: { sorter: "text" },
4: { sorter: "percent" }
}
});
这里是一个。
发现一个不是很好的答案,但现在工作。
我删除了这个解析器:
ts.addParser({
id: "shortDate",
is: function (s) {
return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);
}, format: function (s, table) {
var c = table.config;
s = s.replace(/\-/g, "/");
if (c.dateFormat == "us") {
// reformat the string in ISO format
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2");
} else if (c.dateFormat == "uk") {
// reformat the string in ISO format
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1");
} else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") {
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3");
}
return $.tablesorter.formatFloat(new Date(s).getTime());
}, type: "numeric"
});
这似乎解决我的问题,因为它完全从停止执行的日期解析器。这可能会导致其他情况下的问题,但现在似乎适用于我的网页。如果人们拥有这些答案,我仍然乐于接受其他答案。