【问题标题】:jQuery: Accessing table rows of second and further pages of a datatablejQuery:访问数据表的第二页和更多页的表行
【发布时间】:2013-07-29 12:46:01
【问题描述】:

我正在从 HTML 表格中检索这样的表格行数据。

var descriptions = [];

var testRows = $('#tbl').find('tbody').find('tr');
$this = $(this);

testRows.each(function () {
    var description = $this.find('[id^="Desc"]').text();
    descriptions.push(description);
}

由于此表是一个数据表,其页面限制为 5 个元素,因此我只能访问前 5 行中的数据。

我知道分页数据已从 DOM 中删除,这就是我无法访问其余行的原因。

如何超越第一页并访问剩余的行数据?

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

    我使用 fnGetNodes API 方法检索了数据。

    正确版本(2013 年 8 月 1 日)

    var descriptions = [];
    
    var _testDesc;
    var dt = $("tbl").dataTable();
    
    var dtNodes = dt.fnGetNodes;
    var dtNodeCount = dtNodes.length;
    
    for (var i = 0; i < dtNodeCount; i++) {
        var description = $(dtNodes[i].cells[2].innerHTML).val();
        descriptions.push(description);
    }
    

    版本错误(2013 年 7 月 31 日)

    var descriptions = [];
    
    var _testDesc;
    var dt = $("tbl").dataTable();
    
    var dtElementCollection = dt.DataTable.settings[0].aoData;
    var dtECLength = dtElementCollection.length;
    
    for (var i = 0; i < dtECLength; i++) {
        var description = dtElementCollection[i]._aData[2];
        _testDesc = $(description).val();
        descriptions.push(_testDesc);
    }
    

    【讨论】:

    • 我相信“var dtNodes = dt.fnGetNodes;”应该是“var dtNodes = dt.fnGetNodes();”。不过,谢谢,完成了!
    【解决方案2】:

    如果您使用旧版本的 jQuery,您可以使用 .live() 函数。对于较新的版本,您应该切换到.on()。但是你总是可以从你写的东西中创建一个函数:

    function example() {
        var testRows = $('#tbl').find('tbody').find('tr');
        $this = $(this);
    
        testRows.each(function () {
            var description = $this.find('[id^="Desc"]').text();
            descriptions.push(description);
        }
    }
    

    并在每次对桌子进行操作时运行它:

    function removeTr() {
        $('tr').remove();
        example();
    }
    

    【讨论】:

    • 对不起,我可能没有把问题说清楚,但我不是在寻找要删除的行。我试图找到一种方法来访问第一页后面的行。我已经找到了方法,这在我的答案中有详细说明。感谢您的宝贵时间。
    猜你喜欢
    • 2021-12-22
    • 2018-10-25
    • 2013-04-13
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2012-10-24
    相关资源
    最近更新 更多