Javascript Datatables,在Ajax调用后更改行颜色
我正在使用ajax和fnOpen函数编辑一个数据表,以便根据特定条件添加行。这就是我的代码的外观:Javascript Datatables,在Ajax调用后更改行颜色,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在使用ajax和fnOpen函数编辑一个数据表,以便根据特定条件添加行。这就是我的代码的外观: $('#table tr').each(function(){ id = this.id.substr(4); var result2; $.ajaxSetup({async:false}); $.post('file.php', {id: id}, function(result) { result2 = result; });
$('#table tr').each(function(){
id = this.id.substr(4);
var result2;
$.ajaxSetup({async:false});
$.post('file.php', {id: id}, function(result) {
result2 = result;
});
if (result2 .length > 0) {
oTable.fnOpen( this, 'Notes: ' + result2, "info_row");
}
});
上述操作非常有效,将数据插入新行。但是,完成后,我想更改新添加的行,使其与前一行的颜色相同。如何从这里访问datatables选项,并执行此操作?我怎么知道前一排的班级?我对数据表非常陌生,有时会有点迷路
谢谢大家! 首先,我认为您不想在each中调用
$.ajaxSetup
——每次通过each
时都会更改全局ajax设置。如果您希望在设置中执行的任何操作都应用于所有ajax调用,请在应用程序启动时执行一次
其次,只需更改post
调用即可修改回调中的行颜色
$.post('file.php', {id: id}, function(result) {
result2 = result;
// modify row color here
});
您可以使用以下命令在中找到当前行的类:
$('#table tr').each( function () {
var rowClass = $(this).attr("class");
调用fnOpen时,第三个参数是一个类,它将被分配给包含注入行的TD元素。当前,您总是将硬编码的“info_row”类放入,但是如果您根据rowClass指定一些动态值,则可以将其设置为与当前行相同的颜色
Jovan你添加我细节的方式让我大吃一惊;如果你做到了这一点,设置一些课程应该很容易 假设新行在函数结束时位于DOM中,它应该相当简单。完成DOM添加后,在同一函数中(因此,.each()迭代器中的“this”是当前的表行): 我相信您可以看到,您实际上不需要创建变量“prevClass”,但这正是我希望保持事情的条理性和条理性的方式
var $this = $(this) // might as well do this caching near the beginning of the function
var prevClass = $this.prev().class();
$this.addClass(prevClass);