尝试按日期对列进行排序。这些列是MM / DD / YY格式,因此我必须将其更改为20YY-MM-DD。从我读过的文档来看,应该这样做,但事实并非如此。
任何建议都将不胜感激!
$.tablesorter.addParser({ id: "inputdate", is: function() { return false; }, format: function(s, table) { // reformat mm/dd/yy to mm/dd/20yy var d = (s == "") ? "01/01/00" : $.trim($('input', cell).val()); if(d == "") { // if blank, set a default d = "01/01/00"; } return Date.parse( '20' + d.substr(6,2) + '-' + d.substr(0,2) + '-' + d.substr(3,2) ); }, type: "numeric" });
答案 0 :(得分:0)
看起来format
函数缺少cell
参数:
$.tablesorter.addParser({
id: "inputdate",
is: function() {
return false;
},
format: function(s, table, cell) {
// reformat mm/dd/yy to mm/dd/20yy
var d = (s == "") ? "01/01/00" : $.trim($('input', cell).val());
if(d == "") { // if blank, set a default
d = "01/01/00";
}
return Date.parse( '20' + d.substr(6,2) + '-' + d.substr(0,2) + '-' + d.substr(3,2) );
},
type: "numeric"
});
还要确保在headers
选项中指向此解析器:
$('table').tablesorter({
headers: {
// zero-based column index
0 : { sorter: 'inputdate' }
}
});
解析器未经过测试以确保其正常工作。如果它仍然不起作用,请提供一些HTML或设置JSFiddle。