繁体   English   中英

数据表,在Ajax调用后更改行颜色

[英]Datatables, changing row colors after Ajax call

我正在使用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;
    }); 
    if (result2 .length > 0) {
        oTable.fnOpen( this, 'Notes: ' + result2, "info_row");
    }
});

上面的方法很正常,将数据插入新行。 但是,完成此操作后,我想更改新添加的行,并使其与上一行相同。 如何从此处访问datatables选项,并执行此操作? 我怎么知道上一行的课程? 我对数据表非常陌生,有时会迷路!

谢谢!

您可以使用以下命令找到当前行的类:

$('#table tr').each( function () {
                        var rowClass = $(this).attr("class");

调用fnOpen时,第三个参数是一个类,它将分配给包含注入行的TD元素。 当前,您总是放置硬编码的“ info_row”类,但是如果您分配一些依赖于rowClass的动态值,则可以将其设置为与当前行相同的颜色。

约万

他们让您添加我的详细信息的方式令我震惊。 如果您要实现这一目标,那么设置几个类应该很容易。 ;-)

假设新行在函数末尾位于DOM中,则它应该非常简单。 在同一个函数内完成DOM添加后(因此'this'是.each()迭代器中当前的表行):

var $this = $(this) // might as well do this caching near the beginning of the function
var prevClass = $this.prev().class();
$this.addClass(prevClass);

我敢肯定,您可以看到您并不需​​要真的创建一个变量“ prevClass”,但这就是我想要使事情保持井井有条的方式。 ;-)

首先,我不认为你要调用$.ajaxSetup在每个-你正在改变你每次去通时在全局AJAX设置each 如果您希望设置中执行的任何操作都适用于所有ajax调用,请在应用启动时执行一次。

其次,只需更改您的post调用即可修改回调中的行颜色

$.post('file.php', {id: id}, function(result) {
    result2 = result;
    // modify row color here
}); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM