DataTable:td内日期的自定义排序
Posted
技术标签:
【中文标题】DataTable:td内日期的自定义排序【英文标题】:DataTable: Custom Sorting on date inside td 【发布时间】:2017-05-28 12:06:00 【问题描述】:我有一个 JQuery DataTable,它运行良好,但在特定列上,排序没有按我的意愿工作。
在该列中有一些不同类型的值,例如 Date、Number 和 Text,如下所示:
我想在 Date 字段上实现自定义排序。
有小伙伴知道怎么实现吗?
有什么方法可以在<td>
中的特定<span>
标记上应用自定义排序。我可以在日期周围应用<span>
标签。
或者
采用另一种方式来实现这种类型的排序。
我阅读了太多文章,但没有发现任何有用的文章。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
此链接可能对您有所帮助:***.com/questions/35882936/… @SorangwalaAbbasali:感谢您的留言,但这对我没有帮助。 ( 这就是你需要的。只需稍加修改,您就可以对日期进行排序jsfiddle.net/rYtxh/4 【参考方案1】:试试这个方法:
$("#example").DataTable(
columns:[
null,
null,
null,
null,
"render": function(d)
return $("<span></span>",
"text": d,
"data-date": d.match(/[0-9]2[\/][0-9]2[\/][0-9]4$/)[0]
).prop("outerhtml");
,
"type": "data-date"
,
null
]
);
jQuery.extend(jQuery.fn.dataTableExt.oSort,
"data-date-pre": function(a)
return parseInt(moment($(a).data("date"), "DD/MM/YYYY").format("X"), 10);
,
"data-date-asc": function(a, b)
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
,
"data-date-desc": function(a, b)
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
);
基本上,我们将相关数据包装在一个跨度中,并将提取的日期作为数据属性添加。然后我们对此进行排序。希望有帮助。使用类似数据处理 JSFiddle。
【讨论】:
以上是关于DataTable:td内日期的自定义排序的主要内容,如果未能解决你的问题,请参考以下文章