使用 DataTables 突出显示列和行

Posted

技术标签:

【中文标题】使用 DataTables 突出显示列和行【英文标题】:Column and row hilighting with DataTables 【发布时间】:2012-11-10 09:26:57 【问题描述】:

我正在使用 DataTables 并将这个有点尴尬的 javascript 组合在一起,以允许突出显示行和列。它基于此页面上的示例 (http://datatables.net/release-datatables/examples/api/highlight.html)。

下面是dataTable配置的相关部分:

$(document).ready(function() 
    $('#franchise_history').dataTable( 
        “bPaginate”:假,
        “bLengthChange”:假,
        “bFilter”:真,
        “bSort”:假,
        “bInfo”:是的,
        “bAutoWidth”:真,
        "sScrollY": "100%",
        "sScrollX": "100%",
        “asStripeClasses”:[],
        “fnInitComplete”:函数(conf,json)
            var tbl = $($.fn.dataTable.fnTables(true)).dataTable();
            $('td', tbl.fnGetNodes()).hover( function() 
                var iCol = $('td').index(this) % some_constant;
                var nTrs = tbl.fnGetNodes();
                $('td:nth-child('+(iCol+1)+')', nTrs).addClass('highlighted');
            , 功能() 
                $('td.highlighted', tbl.fnGetNodes()).removeClass('highlighted');
            );
      
);
);

some_constant 由服务器上的模板代码插入。这是列数。这是 DataTables 调试输出:http://debug.datatables.net/oceqix,这是从 http://pro-football-history.com/franchise/37/pittsburgh-steelers-coaches 派生的页面

如您所见,将鼠标悬停在列上并不能正确突出右列。这里出了什么问题?当谈到 Javascript 时,我非常一无所知,而且我基本上处于我的 JavaScript 调试能力的极限。如果任何答案也解释了他们找到它所经历的调试过程,我将不胜感激。

【问题讨论】:

尝试完全按照您引用的示例中的方式使用代码。您进行了几项更改,导致它无法正常工作。 【参考方案1】:

看起来像下面一行中的问题

 var iCol = $('td').index(this) % some_constant;

更改为以下内容应该可以解决您的问题:

var iCol = $('td', this.parentNode).index(this) % some_constant;

问题是$('td') 为您提供了文档中的所有 TD,但您只需要为当前行获取它们。

【讨论】:

以上是关于使用 DataTables 突出显示列和行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Datatables 突出显示行

jQuery DataTables 问题:列和行不在一行

在 Datatables.net 中使用 Sparkline 条形图,我可以用不同的颜色突出显示图表上的一个条形吗?

Google 电子表格:尝试突出显示 A 列和 C 列中的值重复的所有行时出错

突出显示 JTable 的列标题

Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异