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

如何通过fnRowCallback实现DataTable中第一、第二个td加粗?

解决DataTable中仅给第一、第二个字段设置加粗的问题

我来帮你搞定这个问题!你遇到的问题主要有两个原因:一是CSS的nth-child选择器计数是从1开始的,不是0;二是你之前的选择器是全局查找所有表格行的td,没有限定在当前处理的nRow范围内,所以不会生效。

下面给你几种简洁有效的解决方案:

方案一:利用each遍历的索引判断

在each回调中,第二个参数是当前td的索引(从0开始),我们可以直接判断索引是否为0或1,然后添加加粗类:

fnRowCallback: function(nRow, aData, iDisplayIndex) { 
  $('td', nRow).each(function(index) { 
    // 索引0对应第一个td,索引1对应第二个td
    if (index === 0 || index === 1) {
      $(this).addClass('bold');
    }
  }); 
  return nRow; 
}

方案二:直接选择当前行的前两个td

不用遍历所有td,直接用:eq()选择器定位当前行的第一个和第二个td,代码更简洁:

fnRowCallback: function(nRow, aData, iDisplayIndex) { 
  // :eq(0)选中第一个td,:eq(1)选中第二个td,限定在当前nRow内
  $('td:eq(0), td:eq(1)', nRow).addClass('bold');
  return nRow; 
}

方案三:使用nth-child修正写法

如果你想用nth-child的写法,记得计数从1开始,并且限定在当前行范围内:

fnRowCallback: function(nRow, aData, iDisplayIndex) { 
  $('td:nth-child(1), td:nth-child(2)', nRow).addClass('bold');
  return nRow; 
}

这样就能精准给每一行的第一、第二个字段设置加粗效果了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:36