[注意:以下答案适用于 DataTables 1.9x 及以下版本。 1.10 更改了方法命名约定和其他一些内容。 1.9x 方法可用但已弃用,并且将不可避免地被完全删除。]
如果“批量”删除它们是安全的(即,如果您设计了一个不影响 JSON 有效性的转义字符串函数),则可以使用 fnServerData 函数来完成:
"fnServerData": function ( sSource, aoData, fnCallback ) {
$.ajax( {
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": function (data) {
// run your escape string function to modify 'data'
fnCallback(data); // or fnCallback(newData) if you used new variable
}
});
}
如果您不确定批量修改它的安全性,您可以使用 fnRowCallback 逐行进行修改:
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
var cellData = myEscaper(aData[0]); // where myEscaper() is your own custom function
$('td:eq(0)').text(cellData);
return nRow;
}
在此示例中,我仅修改第一个单元格。如果它适用于所有单元格,您可能需要编写一个迭代器来遍历整行以进行转换。如果它只适用于某些单元格,您可以一次处理一个单元格。
请注意,aData[0] 和 td:eq(0) 只是巧合地具有相同的索引 (0)。如果有任何隐藏列,则不一定会匹配。另外,如果您使用 mDataProp,您也需要处理这个问题。