Jquery 对datatable中新添加的列值排序不起作用

Jquery 对datatable中新添加的列值排序不起作用,jquery,datatables,Jquery,Datatables,我有一个DataTable,它有多个列,排序功能对除一列之外的所有列都能正常工作 对于不起作用的列,我将在用户操作后执行延迟获取后向表中添加值,而列中的所有其他值将在呈现表时加载 是否有一种方法可以让表知道最新的值,以便对新列进行排序。要向列中添加文本,我使用Jquery的.text函数 因此,我使用datatables rows every函数循环遍历表中的所有行。我得到的Id是第0列,并将其与延迟加载的JSON数据中的Id进行比较。如果匹配,我将更新单元格[4]的年龄列 运行下面的小提琴并单

我有一个DataTable,它有多个列,排序功能对除一列之外的所有列都能正常工作

对于不起作用的列,我将在用户操作后执行延迟获取后向表中添加值,而列中的所有其他值将在呈现表时加载


是否有一种方法可以让表知道最新的值,以便对新列进行排序。要向列中添加文本,我使用Jquery的
.text
函数

因此,我使用datatables rows every函数循环遍历表中的所有行。我得到的Id是第0列,并将其与延迟加载的JSON数据中的Id进行比较。如果匹配,我将更新单元格[4]的年龄列

运行下面的小提琴并单击“加载年龄”按钮。即使你对它进行了分类,它也应该正确地得到其中的年龄,并且它们应该是可排序的

var年龄=[{
“id”:“1”,
‘年龄’:‘63’
}, {
“id”:“2”,
‘年龄’:‘66’
}, {
“id”:“3”,
‘年龄’:‘22’
}, {
“id”:“4”,
‘年龄’:‘33’
}];
变量表=$('#示例')。数据表({
});
$('#addagesBtn')。单击(函数(事件){
table.rows().every(函数(rowIdx、tableLoop、rowLoop){
var self=这个;
var d=this.data();
变量id=d[0]
$。每个(年龄、功能(i、项目){
如果(item.id==id){
d[4]=项目年龄
自我数据(d);
self.invalidate();
}
});
});
table.draw();
})

身份证件
名称
位置
办公室
年龄
开始日期
薪水
身份证件
名称
位置
办公室
年龄
开始日期
薪水
1.
加勒特温特斯
会计
东京
2011/07/25
$170,750
2.
阿什顿考克斯
初级技术作者
旧金山
2009/01/12
$86,000
3.
塞德里克·凯利
高级Javascript开发人员
爱丁堡
2012/03/29
$433,060
4.
佐藤航空
会计
东京
2008/11/28
$162,700
延迟加载时间
单元格().invalidate()函数

或row().invalidate()函数


如果从延迟获取在回调中调用,可能会很有用。

只是想知道,如果排序已打开,并且您正在延迟加载其中一列的值,那么您如何知道该列属于哪一行?就像他们对表进行了排序一样,您如何知道将延迟加载的数据放在哪一行?是否有某种主键也随延迟加载数据而来。也许您可以显示延迟加载数据的外观,即每行的标识符。我获取的数据将标识符映射到一个值。所以我匹配相应的行。是的,像主键一样。好的,我试着编一把小提琴