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(); }