jquery数据表根据列名称突出显示单元格

时间:2016-02-23 07:43:59

标签: javascript jquery html datatables

我正在使用https://www.datatables.net/插件。 这是我单个行的样本数据

{
    id: 12,
    name: 'Fred',
    highlight: ['name'] // highlight column with name key
}

突出显示键指示要突出显示的键,在本例中为名称列。

问题: 我知道我可以使用rowCallBack并在那里操作单元格,但我似乎无法弄清楚如何找到单元格的列名称,以便我可以突出显示它。

目的: 如何查找每个单元格的列名称,以便检查它是否存在于高亮数组中,然后添加高亮类红色

JSFIDDLE: https://jsfiddle.net/bababalcksheep/oLjy0rmL/

JS:

$(document).ready(function() {
  //
  var data = [{
    id: 12,
    name: 'Fred',
    highlight: ['name'] // highlight column with name key
  }, {
    id: 13,
    name: 'Simon',
    highlight: []
  }, {
    id: 14,
    name: 'Albert',
    highlight: ['name']
  }];
  //
  var table = $('#example').DataTable({
    "columns": [{
      'title': 'ID',
      'data': 'id',
      'name': 'id',
    }, {
      'title': 'Name',
      'data': 'name',
      'name': 'name',
    }],
    data: data,
    rowCallback: function(row, data, index) {
      var _hasHighlight = data.highlight && data.highlight.length;
      if (_hasHighlight) {
        $(row).find('td').each(function() {
          //how do I find each cell`s column name so i can check
          //if it exists in _hasHighlight array then add highlight class red 
        });
      }
    }
  });

});

1 个答案:

答案 0 :(得分:1)

$(row).find('td').each(function() {

您能否尝试用以下代码替换上面的代码行,这将给出列名称。

$(row).find('td').each(function (colIndex) {
alert($('#example').DataTable.arguments[0].columns[colIndex].title);

Fiddler Link