Datatables 在数据表中按数字的一部分排序

Datatables 在数据表中按数字的一部分排序,datatables,Datatables,我的第一列是一个VIN编号 示例:FLXVU3822G1000013 现在,VIN编号只是一组拼凑在一起的信息。最后6个数字是当年的序列号。您可以看到,此示例车辆是今年的第13辆。我真的很想把我的名单上的最后6位数字过滤掉。有没有办法做到这一点?您可以通过自定义排序插件轻松解决此问题。事实上,您只需要提取最后6位数字并将其作为数字返回,然后dataTables将使用内部数字排序算法对列进行排序: jQuery.extend(jQuery.fn.dataTableExt.oSort{ “最后6位前

我的第一列是一个VIN编号

示例:FLXVU3822G1000013


现在,VIN编号只是一组拼凑在一起的信息。最后6个数字是当年的序列号。您可以看到,此示例车辆是今年的第13辆。我真的很想把我的名单上的最后6位数字过滤掉。有没有办法做到这一点?

您可以通过自定义排序插件轻松解决此问题。事实上,您只需要提取最后6位数字并将其作为数字返回,然后dataTables将使用内部数字排序算法对列进行排序:

jQuery.extend(jQuery.fn.dataTableExt.oSort{
“最后6位前置”:功能(a){
var n=a.子字符串(a.长度-6,a.长度)
返回parseInt(n)
}
})
用法:

var table=$('#示例').DataTable({
columnDefs:[
{目标:0,键入:“最后6位”}
]
})  
其中
targets:0
是要按此特定方式排序的列的索引


请参阅演示->

一直在尝试实现此功能,但我似乎无法使其正常工作,因此我有几个问题。你为什么把前6位数加在后6位数上?jQuery.extend函数引用DataTablie init的位置在哪里?在文档内部。准备好了,在文档外部,在其他地方…@JonD,已经用一个演示更新了。尝试注释
columnDefs
的内容
pre-
用于“prepare”(据我记忆所及),它针对每一行调用,并且在对表进行排序时将使用返回值。您还可以通过
-asc
-desc
覆盖排序算法。据我所知,没有那么多关于编写插件的文档(据我所知),但是你可以在这里学习其他插件->