jQuery:访问数据表的第二页和更多页的表行

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

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

我使用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); } 

如果您使用旧版本的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(); }