【问题标题】:Datatables highlight rows beyond the first paginated page数据表突出显示第一个分页页面之外的行
【发布时间】:2015-07-13 03:02:31
【问题描述】:

当我尝试突出显示第一个分页页面之外的行时,Datatables 插件给了我一些问题。

在下面的 JS 中,您将看到我将类信息添加到所有行的注释掉的代码。当我这样做并且您分页到其他页面时,其他页面上的所有行都会突出显示。您还将在下面看到未注释的代码,其中我将类信息添加到除第一行之外的所有行,但在这种情况下,当我分页到其他页面时,这些行没有突出显示。

有没有人知道为什么会发生这种情况?

JSFiddle:

https://jsfiddle.net/ebRXw/560/

JS:

$(document).ready(function () {

    $('table').dataTable({
        "paging": true,
        "ordering": true,
        "filter": false,
        "length": false,
        "info": false
    });

    var table = $("table").dataTable();
    var rows = table.$("tr");
    var rowsNext = table.$("tr").next();
    var cell = table.$("td:nth-child(2)");
    var cellNext = table.$("tr").next().children("td:nth-child(2)");

    /*rows.addClass("info");*/
    rowsNext.addClass("info");

});

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

    rowsNext.addClass("info") 仅将类添加到当前页面的行中,并且仅在页面加载时运行一次。

    如果您想在每次加载不同的页面时都运行它,您可以在表格的draw event 中添加一个事件监听器,如下所示:

    $("table").on("draw.dt", function(){
        var rowsNext = $("table").dataTable().$("tr").next();
        rowsNext.addClass("info");
    });
    

    每次绘制新页面时都会运行此代码。

    演示:https://jsfiddle.net/alan0xd7/ebRXw/567/

    【讨论】:

    • 但是为什么 rows.addClass("info") 不能以同样的方式工作呢?也许这是一个新问题,但我需要 rowsNext.addClass("info") 以与 rows.addClass("info") 相同的方式工作。
    • 因为rows拥有表格中的所有行。
    • 而且它只是不可能用 .next() 做到这一点
    • 没错。也许你应该问一个问题,你想用这些行做什么?
    • 我了解发生了什么我正在寻找解决方法。我希望它在加载时发生,而不是在每次抽牌时都运行。
    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多