我有以下页脚表:
<tfoot>
<tr>
<th colspan="9">Total amount:</th>
<th></th>
<th></th>
</tr>
<tr>
<th colspan="9">Grand total:</th>
<th colspan="2"></th>
</tr>
</tfoot>
我正在使用jQuery DataTable从mySQL渲染数据,我使用第一个页脚行来从两列中的表中取代值,让我们说Amount和SAmount
"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
var nCells = nRow.getElementsByTagName('th');
nCells[0].innerHTML = Amount;
var nCells = nRow.getElementsByTagName('th');
nCells[1].innerHTML = SAmount;
});
在第二个页脚行中,我想插入总金额和SAmount之间的差异。 如何在第二个页脚行中插入差异总行?
答案 0 :(得分:0)
我自己找到了
var secondRow = $(nRow).next()[0];
var nCells = secondRow.getElementsByTagName('td');
答案 1 :(得分:0)
感谢您提供的信息。如果要将第三个页脚行添加到数据表中,则可以使用以下命令:
var thirdRow = $($(nRow).next()[0])。next()[0]; var nCells = thirdRow.getElementsByTagName('th');
答案 2 :(得分:0)
如果你想使用插件导出它只会导出页脚的第一行,为了解决这个问题,你可以修改browser.b(index: 4)
中的函数_fnGetDataTablesData
,用这个新代码更改页脚部分:
dataTables.tableTools.js
答案 3 :(得分:0)
如果表格页脚中有任何colspans,Ernesto Ramos的答案会抛出错误(是的,我知道数据表不支持colspans)。 Tabletools通过清除数据来处理错误,因此文件完全为空。
下面的解决方案与上面的解决方案非常相似,但允许使用colspans。
if (oConfig.bFooter && dt.nTFoot !== null) {
var numRows = dt.nTFoot.rows.length;
for (j = 0; j < numRows; j++) {
aRow = [];
for (i = 0, iLen = dt.aoColumns.length ; i < iLen ; i++) {
if (aColumnsInc[i] && dt.nTFoot.rows[j].cells[i] && dt.aoColumns[i].nTf !== null) {
sLoopData = dt.nTFoot.rows[j].cells[i].innerHTML.replace(/\n/g, " ").replace(/<.*?>/g, "");
sLoopData = this._fnHtmlDecode(sLoopData);
aRow.push(this._fnBoundData(sLoopData, oConfig.sFieldBoundary, regex));
}
}
aData.push(aRow.join(oConfig.sFieldSeperator));
}
}