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

如何在DataTables的RowGroup分组行中显示对应国家的旗帜图片?

解决方案

rows.data()返回的是DataTables封装的类数组API对象,你调用的eq(0)是API集合的过滤方法,返回的还是集合实例而非单条原始数据。要获取分组内第一条行的原始数据,直接调用first()方法即可,同一个城市分组下所有行的国家旗帜信息一致,取第一条数据的字段即可满足需求。

你只需要修改startRender回调逻辑,修改后的代码如下:

rowGroup: {
  dataSrc: 'office',
  startRender: function ( rows, group ) {
    var collapsed = !!collapsedGroups[group];
    rows.nodes().each(function (r) {
      r.style.display = collapsed ? 'none' : '';
    });
    // 取分组内第一条数据的国旗链接
    var firstRowData = rows.data().first();
    var flagImg = '';
    if(firstRowData?.country?.flag) {
      flagImg = `<img src="${firstRowData.country.flag}" style="height: 18px; vertical-align: middle; margin-right: 6px;" alt="国旗">`
    }
    return $('<tr/>')
      .append(`<td colspan="8">${flagImg}${group} (${rows.count()})</td>`)
      .attr('data-name', group)
      .toggleClass('collapsed', collapsed);
  },
},

上述代码会先读取分组下第一条数据的国旗地址,渲染成图片放在城市名称左侧,你可以根据需要调整图片的样式参数适配页面效果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:12:04