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

标签 javascript jquery html datatable datatables

此问题针对 JQueryDatatables 插件。

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

像这样的 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>

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

我可以循环遍历以下所有行:

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

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

但我找不到获取 trid 的方法(使用此示例数据 etc_1_enetc_1_ru等等)。有人可以帮助我吗?

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

最佳答案

您可以使用rows().every()循环遍历rows()。这样您就可以访问 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);
});

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

关于javascript - 数据表。如何循环遍历所有行并获取每个 tr 条目的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49147871/

相关文章:

javascript - 将弹出窗口更改为选项卡窗口

javascript - 获取innerHTML包含额外的<br>标签,这正常吗?

javascript - 检测客户端断开连接

javascript - 如何在requirejs中加载angularjs?

javascript - 我无法实时更新数据

javascript - jQuery Gallery 不适用于任何版本的 Internet Explorer

jquery - 悬停时不显示带有功能 css 的 Alertify 确认框

javascript - 使用 jQuery 按钮在文本和编辑表单之间来回切换

asp.net-mvc - 您可以只更新部分 View 而不是整页帖子吗?

javascript - 如何显示指示平均值的进度条