首页 > 解决方案 > 将行添加为 DOM 节点时如何应用排序

问题描述

我有一个用例,我需要通过 javascript 动态添加行。我想将该行添加为内联的 DOM 节点,因为它最适合我的情况。所以我正在做类似以下的事情:

var name  // String
var dob    // Date
table.row.add($('<tr><td>' + name + '</td><td>' + dob.format('dd-mm-yy') + '</td></tr>'));

但是,使用这种方法,DOB 字段上的排序将不正确。我需要一种方法来告诉它按 dob.getTime() 排序。

有没有办法我可以做到这一点?

标签: datatables

解决方案


解决方案是使用 html5 data-* 属性。所以排序可以这样纠正:

table.row.add($('<tr><td data-sort=dob.getTime().toString()>' + name + '</td><td>' + dob.format('dd-mm-yy') + '</td></tr>'));

但是请注意,在未初始化的表上使用 data-* 属性存在问题。可以在此处找到该问题的解决方案


推荐阅读