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

如何仅通过aria-describedby属性定位元素并修改其显示值

jqGrid 修改指定布尔列显示值方案

针对你要修改aria-describedby="GridMaksajumi_BezApmaksas"单元格true/false显示的需求,有两种可落地的实现方式,根据场景选择即可:


方案1:列配置格式化(推荐,永久生效)

这是jqGrid官方推荐的做法,直接在列定义阶段指定渲染规则,后续翻页、排序、重载数据、新增行都会自动按规则渲染,不会出现改完又变回true/false的问题。
找到初始化jqGrid时的colModel配置项,定位到name为BezApmaksas的列,添加formatter格式化函数即可:

$("#GridMaksajumi").jqGrid({
  // 原有的url、datatype等其他配置全部保留
  colModel: [
    // 其他列的配置保持不变...
    {
      name: 'BezApmaksas',
      index: 'BezApmaksas',
      // 保留该列原有的width、align等配置,新增下面的格式化逻辑
      formatter: function (cellValue) {
        // 这里自定义要显示的文本,比如替换成"是/否"、"无需付款/需付款"都可以
        return cellValue ? "是" : "否";
      }
    },
    // 其他列的配置保持不变...
  ]
})

配置完成后执行一次网格重载$("#GridMaksajumi").trigger("reloadGrid")就能看到所有行的该列都按新规则显示了。


方案2:直接修改当前渲染的DOM(临时生效)

如果你只是临时改当前页已经渲染出来的内容,不想动网格初始化配置,可以直接用jQuery属性选择器抓取所有目标单元格遍历修改:

// 抓取所有目标列的单元格
$('#GridMaksajumi td[aria-describedby="GridMaksajumi_BezApmaksas"]').each(function () {
  const rawVal = $(this).text().trim();
  const displayText = rawVal === 'true' ? "是" : "否";
  // 修改单元格显示内容
  $(this).text(displayText);
  // 同步修改title属性,避免鼠标悬浮时还是显示原始的true/false
  $(this).attr('title', displayText);
})

注意:这个方案只会修改当前页面已经加载出来的单元格,一旦触发翻页、网格重载、排序、新增行操作,修改就会被jqGrid默认渲染逻辑覆盖,需要重新执行这段代码。如果需要长期生效请优先选择方案1。


内容的提问来源于stack exchange,提问作者Renārs Abeļūns

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:24:21