3

我正在从 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 中删除,因此这就是我无法访问其余行的原因。

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

4

2 回答 2

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);
}
于 2013-07-31T08:03:55.197 回答
0

如果你使用旧版本的 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();
}
于 2013-07-29T17:41:01.417 回答