如何通过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
相关产品推荐
相关产品推荐

