Javascript 在回调后更新DataTables筛选/排序标记
我正在使用来格式化我的列表列中的时间戳。fnDrawCallback DataTables选项允许我设置/更新格式化的时间戳,如:Javascript 在回调后更新DataTables筛选/排序标记,javascript,jquery,datatables,timeago,Javascript,Jquery,Datatables,Timeago,我正在使用来格式化我的列表列中的时间戳。fnDrawCallback DataTables选项允许我设置/更新格式化的时间戳,如: <abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr> 但是,fnDrawCallback不会更新搜索标记,因此查询年份不会返回任何结果。有没有办法强制DataTables更新其搜索标记 编辑 为了清晰起见,我初始化了tableData和TableHea
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
但是,fnDrawCallback不会更新搜索标记,因此查询年份不会返回任何结果。有没有办法强制DataTables更新其搜索标记
编辑
为了清晰起见,我初始化了tableData和TableHeaders,这是一个通过JSON传入的哈希数组。这似乎很好,因为这些数据在表中显示得很顺利。问题是Timeago修改了fnDrawCallback上的DOM,这是在填充了表的筛选/排序标记之后发生的
// tableHeadings === ['a', 'b', 'DateOne', 'DateTwo', ...]
for(i=0; i<tableHeadings.length; i++) {
tableHeadings[i] = { "sTitle" : tableHeadings[i], };
if(tableHeadings[i].sTitle.match(/Date/)) {
tableHeadings[i].fnRender = function (c) { // closure over i
return function (o) {
var iso_time = o.aData[c].replace(/\s/, "T") + "Z";
return '<abbr class="timeago" title="'+iso_time+'">'+'</abbr>';
}
}(i);
}
}
所以我可以搜索iso_时间,但不是两年前。您使用的是服务器端过滤还是客户端过滤?能否请您也发布如何初始化AOU列?
// tableHeadings === ['a', 'b', 'DateOne', 'DateTwo', ...]
for(i=0; i<tableHeadings.length; i++) {
tableHeadings[i] = { "sTitle" : tableHeadings[i], };
if(tableHeadings[i].sTitle.match(/Date/)) {
tableHeadings[i].fnRender = function (c) { // closure over i
return function (o) {
var iso_time = o.aData[c].replace(/\s/, "T") + "Z";
return '<abbr class="timeago" title="'+iso_time+'">'+'</abbr>';
}
}(i);
}
}