数据表。如何遍历所有行并获取每个 tr 条目的 id

Inf*_*ity 2 html javascript datatable jquery datatables

本题针对Datatables插件为JQuery.

我需要遍历所有表格行(甚至分页)并获取id每个tr元素。

像这样的 HTML 表格:

<table>
  <thead>
    <tr>
      <th>Header content 1</th>
      <th>Header content 2</th>
    </tr>
  </thead>
  <tbody>
    <tr id="etc_1_en">
      <td>Etc 1</td>
      <td>Etc 2</td>
    </tr>
    <tr id="etc_1_ru">
      <td>Etc 3</td>
      <td>Etc 4</td>
    </tr>   
    <tr id="etc_1_fr">
      <td>Etc 5</td>
      <td>Etc 6</td>
    </tr>   
    <tr id="etc_2_en">
      <td>Foo 1</td>
      <td>Foo 2</td>
    </tr>
    <tr id="etc_2_ru">
      <td>Foo 3</td>
      <td>Foo 4</td>
    </tr>   
    <tr id="etc_2_fr">
      <td>Foo 5</td>
      <td>Foo 6</td>
    </tr>       
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

因此,如果最后 2 个字符不等于,我需要遍历每一行并隐藏行en(通过此检查一切正常,我正在使用substr)。

我可以遍历以下所有行:

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

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

但我不能找到一种方式来获得idtr(这个样本数据etc_1_enetc_1_ru等等)。有人可以帮助我吗?

我试图将函数id作为参数传入,但它返回 - undefined

spa*_*edc 5

您可以循环rows()使用 using rows().every()。这样您就可以访问该row对象,这将为您提供dataid

tbl = $('#myTable').DataTable();

tbl.rows().every(function () {
  var data = this.data();
  var id = this.id();
  console.log('Data in id: ' + id + ' index: ' + index + ' is: ' + data);
});
Run Code Online (Sandbox Code Playgroud)

更多信息:https://datatables.net/reference/api/rows().every()