如何遍历DataTables jQuery中的所有行?

Viv*_*ipo 20 javascript jquery datatables jquery-datatables

我正在使用jquery插件D ataTables来构建漂亮的表

  var table = $('#example').DataTable({
    "data": source
});
Run Code Online (Sandbox Code Playgroud)

我想为表中的所有行创建一个

不幸的是,这种方式可能已过时,并且不适用于新版本(它会启动错误)

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

});
Run Code Online (Sandbox Code Playgroud)

这种方式仅适用于可见行(10个第一行,因为其他行是分页的)

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

你知道如何循环到所有行吗?

Viv*_*ipo 32

我终于找到了:

 var data = table.rows().data();
 data.each(function (value, index) {
     console.log(`For index ${index}, data value is ${value}`);
 });
Run Code Online (Sandbox Code Playgroud)

  • 警告:这只会遍历传递给dataTables的数据本身-因此,您提供的任何HTML都将是此方法中的字符串。 (2认同)

Ath*_*man 8

数据表具有用于每行的迭代器的行().每一()this参照当前行的上下文中被重复.

tableName.rows().every(function(){
    console.log(this.data());
});
Run Code Online (Sandbox Code Playgroud)

  • 通过这个,我们将获得当前寻呼机的行。如何获取所有寻呼机数据。 (2认同)

Moh*_*jib 7

如果您使用的是旧版DataTable,则可以获得所有行甚至是分页行,如下所示......

table.fnGetNodes(); // table is the datatables object.
Run Code Online (Sandbox Code Playgroud)

所以我们可以使用.each()提供的方法遍历行jQuery.

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