javascript 如何在DataTables jQuery中循环遍历所有行?

klsxnrf1  于 2023-02-02  发布在  Java
关注(0)|答案(4)|浏览(261)

我正在使用jquery插件DataTables构建漂亮的表

var table = $('#example').DataTable({
    "data": source
});

我希望为表中的所有行创建一个each
不幸的是,这种方式可能是过时的,不适用于新版本(它启动一个错误)

$(table.fnGetNodes()).each(function () {

});

这种方法只适用于visibles行(前10行,因为其他行已分页)

table.each( function ( value, index ) {
    console.log( 'Data in index: '+index+' is: '+value );
} );

你知道怎么循环到所有行吗?

wz3gfoph

wz3gfoph1#

我终于发现:

var data = table.rows().data();
 data.each(function (value, index) {
     console.log(`For index ${index}, data value is ${value}`);
 });
8nuwlpux

8nuwlpux2#

数据表的每一行rows().every()都有一个迭代器,其中this引用被迭代的当前行的上下文。

tableName.rows().every(function(){
    console.log(this.data());
});
lndjwyie

lndjwyie3#

如果您使用的是遗留的DataTable,那么您可以获取所有行甚至分页的行,如下所示...

table.fnGetNodes(); // table is the datatables object.

因此,我们可以使用jQuery提供的.each()方法循环遍历行。

jQuery(table.fnGetNodes()).each(function () {
// You can use `jQuery(this).` to access each row, and process it further.            
});
kt06eoxx

kt06eoxx4#

例如,这个数据有三个字段UserID、UserName和isActive,我们只想显示活动用户。下面的代码将返回所有行。

var data = $('#myDataTable').DataTable().rows().data();

我们将只打印活动用户

data.each(function (value, index) {
  if (value.isActive)
  {
     console.log(value.UserID);
     console.log(value.UserName);
  }
});

相关问题