You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery获取Kendo.Grid页脚总计文本?现有代码无输出求解

如何获取Kendo Grid页脚中的总计文本?

我看了你的代码,发现问题主要出在选择器拼写和DOM依赖上,下面给你一步步解决:

1. 先解决最直接的问题:选择器大小写错误

你初始化Grid用的是$("#TicketReportPropertyGrid"),但获取页脚时的选择器写成了$('#TicketreportPropertyGrid')——注意Report里的大写R在第二个选择器里变成小写了!jQuery的ID选择器是严格区分大小写的,这直接导致你找不到目标元素,所以text()返回空,控制台自然没输出。

修正拼写后的DOM获取代码:

function DeleteRecord(e) {
 e.preventDefault(e);
 var grid = $("#TicketReportPropertyGrid").getKendoGrid();
 var row = $(e.target).closest("tr");
 var dataItem = grid.dataItem(row);
 dataItem.deleted = true;
 row.addClass('disabledGridRow');
 // 修正ID的大小写拼写
 var totalArea = $('#TicketReportPropertyGrid table tfoot .k-footer-template td').eq(2).text();
 console.log(totalArea);
}

2. 更稳妥的方案:不依赖DOM,直接从Grid数据源拿聚合值

直接操作DOM容易受Kendo版本更新、模板结构变化影响,更可靠的方式是利用Kendo Grid的数据源聚合API来获取总计值,不用去抓页脚文本。

假设你的Grid数据源配置了类似这样的聚合规则:

dataSource: {
  // 其他配置项...
  aggregate: [ { field: "Amount", aggregate: "sum" } ] // 假设金额字段是Amount
}

那你可以直接从数据源的聚合结果中取值:

function DeleteRecord(e) {
 e.preventDefault(e);
 var grid = $("#TicketReportPropertyGrid").getKendoGrid();
 var row = $(e.target).closest("tr");
 var dataItem = grid.dataItem(row);
 dataItem.deleted = true;
 row.addClass('disabledGridRow');
 
 // 从数据源聚合结果中获取总计值
 var aggregates = grid.dataSource.aggregates();
 var totalAmount = aggregates.Amount.sum;
 // 按需拼接成页脚的文本格式
 var totalText = `Total: ${totalAmount}`;
 console.log(totalText);
}

这种方式完全脱离DOM结构,不管页脚模板怎么改,都能准确拿到计算后的总计值,避免各种选择器相关的坑。

3. 简化DOM选择器(如果坚持用DOM方式)

如果还是想通过DOM获取,可以用Kendo Grid自带的类名简化选择器,减少出错概率:

var totalArea = $("#TicketReportPropertyGrid .k-grid-footer .k-footer-template td").eq(2).text();

内容的提问来源于stack exchange,提问作者gene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:39:00