我想创建一个可以应用于多个数据表的日期范围过滤器。我遇到的问题是即使我过去了 在我的 aaData 值中作为一个对象数组,当我到达过滤器函数时它在一个数组中。这是行不通的,因为数组中日期值的索引在我的应用程序中的各种数据表中是不同的,我更愿意能够通过像这样的属性上的点符号来完成它。
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var iMin = document.getElementById('start-datepicker').value;
var iMax = document.getElementById('end-datepicker').value;
// Create Minimum Date Object
var iMinDate = new Date(iMin);
// Create Maximum Date Object
var iMaxDate = new Date(iMax);
// Create Date Column Object
var iDateStr = aData.date;
var iDate = new Date(iDateStr);
if ( iMinDate < iDate && iDate < iMaxDate )
{
return true;
}
return false;
}
);
最佳答案
这可能是一个 hack,但它似乎可以通过 oSettings.aoData 对象和 iDataIndex 参数获取数据。
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var iMin = document.getElementById('start-datepicker').value;
var iMax = document.getElementById('end-datepicker').value;
// Create Minimum Date Object
var iMinDate = new Date(iMin);
// Create Maximum Date Object
var iMaxDate = new Date(iMax);
// Create Date Column Object
var rowData = oSettings.aoData[iDataIndex]._aData;
var iDateStr = rowData.date;
var iDate = new Date(iDateStr);
if ( iMinDate < iDate && iDate < iMaxDate )
{
return true;
}
return false;
}
);
关于javascript - DataTables按属性而不是数组索引过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14163565/