如何访问Datatables页脚第二行并正确注入合计数值
错误原因
你现有代码的核心问题是:在$('#example > tfoot > tr').each()遍历过程中,拿到的tr是当前正在遍历的单个DOM节点,不是页脚所有行的集合,所以tr[1]是不存在的,自然无法访问到第二行的单元格。
修正方案
你可以先提前获取到页脚第二行的DOM对象,再在计算得到rowSum后统一赋值即可,修正后代码参考:
// 提前获取页脚第二行(索引从0开始,第二行对应索引1) const footerSecondTr = $('#example > tfoot > tr').eq(1)[0]; $('#example > tfoot > tr').each(function(index, tr) { var rowSum = 0; for (let j = 0; j < 12; j++) { if (j >= 2) { var tdCellValue = numberFromString(tr.cells[j].innerText); rowSum = rowSum + tdCellValue; } } // 循环结束后统一赋值,避免循环内重复写入 tr.cells[12].innerText = rowSum; footerSecondTr.cells[12].innerText = rowSum; });
如果你的需求是在第二行展示所有行的汇总值,而非每行单独的求和值,只需要把求和逻辑提到行遍历的外层,累加所有行的数值后再赋值给第二行对应单元格即可。
内容的提问来源于stack exchange,提问作者Cheknov
相关产品推荐
相关产品推荐

