【发布时间】:2010-08-23 10:02:47
【问题描述】:
我正在使用DataTable Plugin 进行 html 表格排序。它工作正常。现在我在文本框中有一列包含 Dates(d/m/Y) 的列。对该列的排序不起作用。我想按日期排序。
首先我应用以下代码使文本框可排序。
包含 3 个字段的表格:
<script type='text/javascript' charset='utf-8'>
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn ) {
var aData = [];
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( this.value );
} );
return aData;
}
$(document).ready(function() {
$('#sortableTable').dataTable( {
'aoColumns': [null, null,{ 'sSortDataType': 'dom-text' }]
} );
} );
</script>
日期排序在没有文本字段的日期列上工作正常。
如何对文本框中的日期应用日期排序。
编辑:
jquery.dataTables.js 中有以下函数
"date-asc": function ( a, b )
{
var x = Date.parse( a );
var y = Date.parse( b );
if ( isNaN(x) || x==="" )
{
x = Date.parse( "01/01/1970 00:00:00" );
}
if ( isNaN(y) || y==="" )
{
y = Date.parse( "01/01/1970 00:00:00" );
}
return x - y;
},
"date-desc": function ( a, b )
{
var x = Date.parse( a );
var y = Date.parse( b );
if ( isNaN(x) || x==="" )
{
x = Date.parse( "01/01/1970 00:00:00" );
}
if ( isNaN(y) || y==="" )
{
y = Date.parse( "01/01/1970 00:00:00" );
}
return y - x;
},
【问题讨论】:
-
this page in the manual 不回答你的问题吗?
-
@jasper:如果您将该评论作为答案,那么我一定会接受。我在阅读您提到的此页面时搜索了我的答案。
-
我只是不确定 - 通常提问者已经尝试过第一个谷歌结果:P
-
看看DynamicTable,用于对 HTML 表进行排序、过滤和分页的小型 JavaScript 库。演示可用here。麻省理工学院许可。
标签: jquery sorting date jquery-plugins