Javascript Datatables在创建后将类添加到行中

Javascript Datatables在创建后将类添加到行中,javascript,datatables,Javascript,Datatables,我正在使用Datatables,并试图根据创建表后可以设置的其他输入突出显示行。 无法使用createdrow回调,我不确定它是否适合此用途,因为它用于创建,而我需要它 我可以用javascript来实现,但我认为datatables属性/函数可能有更好的选择 $(文档).ready(函数(){ $('#myTableId').DataTable(); } ); 已选择功能项(sel){ var opts=[]; var len=选择选项长度; 对于(变量i=0;i

我正在使用Datatables,并试图根据创建表后可以设置的其他输入突出显示行。 无法使用createdrow回调,我不确定它是否适合此用途,因为它用于创建,而我需要它

我可以用javascript来实现,但我认为datatables属性/函数可能有更好的选择

$(文档).ready(函数(){
$('#myTableId').DataTable();
} );
已选择功能项(sel){
var opts=[];
var len=选择选项长度;
对于(变量i=0;i=0){
table.rows[r]。单元格[0]。classList.add('highlithRow');
table.rows[r].单元格[1].类列表.add('highlithRow');
}
否则{
table.rows[r]。单元格[0]。classList.remove('highlithRow');
table.rows[r].单元格[1].类列表.remove('highlithRow');
}
}
}

在初始化方法中添加回调函数:

$(document).ready( function () {
    $('#myTableId').DataTable( {
        "createdRow": function ( row, data, index ) {
            if (data[1] == 200) {
                $('td', row).eq(1).addClass("highlithRow");
            }
        }
    } );
} );

您可以在此处了解更多信息:

在初始化方法中添加回调函数:

$(document).ready( function () {
    $('#myTableId').DataTable( {
        "createdRow": function ( row, data, index ) {
            if (data[1] == 200) {
                $('td', row).eq(1).addClass("highlithRow");
            }
        }
    } );
} );

您可以在此处了解更多信息:

假设您已将表分配给变量,如下所示

var table = $('#myTableId').DataTable();
您有一个如下所示的表(帮助您可视化代码所做的工作):

…然后您可以使用DataTables API迭代表中的所有行,并访问每个
节点以及相关行数据:

table.rows().every( function () {
  rowNode = this.node();
  rowData = this.data();
  if (rowData.office === 'Tokyo') {
    $(rowNode).addClass( 'highlightme' ); 
  }
} );
这假设行数据是作为对象提供的,例如,来自源JSON的对象

如果数据已经在HTML表中提供,或者如果每一行都作为数组提供,则需要使用索引访问数据单元格:

if (rowData[2] === 'Tokyo') {
最终结果是东京行的所有
元素现在都添加了
highlightme
类:

<tr role="row" class="odd highlightme">
  <td class="sorting_1">Airi Satou</td>
  <td>Tokyo</td>
  <td>Tokyo</td>
  <td>Accountant</td>
  <td>2008/11/28</td>
  <td>$162,700</td>
</tr>

佐藤航空
东京
东京
会计
2008/11/28
$162,700

假设您已将表分配给变量,如下所示

var table = $('#myTableId').DataTable();
您有一个如下所示的表(帮助您可视化代码所做的工作):

…然后您可以使用DataTables API迭代表中的所有行,并访问每个
节点以及相关行数据:

table.rows().every( function () {
  rowNode = this.node();
  rowData = this.data();
  if (rowData.office === 'Tokyo') {
    $(rowNode).addClass( 'highlightme' ); 
  }
} );
这假设行数据是作为对象提供的,例如,来自源JSON的对象

如果数据已经在HTML表中提供,或者如果每一行都作为数组提供,则需要使用索引访问数据单元格:

if (rowData[2] === 'Tokyo') {
最终结果是东京行的所有
元素现在都添加了
highlightme
类:

<tr role="row" class="odd highlightme">
  <td class="sorting_1">Airi Satou</td>
  <td>Tokyo</td>
  <td>Tokyo</td>
  <td>Accountant</td>
  <td>2008/11/28</td>
  <td>$162,700</td>
</tr>

佐藤航空
东京
东京
会计
2008/11/28
$162,700

在我的情况下,它不起作用,因为我想突出显示由于其他部分中的更改而导致的行(表中没有未更改的内容)。请参阅我添加的fiddle链接在我的示例中不起作用,因为我想突出显示由于其他部分中的更改而导致的行(表中没有未更改的内容)。请看我添加的小提琴链接Hanks。使用您的解决方案比直接迭代表行(如我在问题中所述)有什么优势吗?如果您的表使用分页,那么问题中的方法将只对可见(呈现)行进行操作。使用DataTables API意味着您将访问DataTable中的每一行—呈现与否。同样的观点也适用于数据过滤。谢谢。使用您的解决方案比直接迭代表行(如我在问题中所述)有什么优势吗?如果您的表使用分页,那么问题中的方法将只对可见(呈现)行进行操作。使用DataTables API意味着您将访问DataTable中的每一行—呈现与否。这一点同样适用于数据过滤。