【问题标题】:Click a link in a table row based on text in that row根据该行中的文本单击表格行中的链接
【发布时间】:2019-06-09 17:59:49
【问题描述】:

我有一个表格,它有多行,最后有一个链接。

我想单击包含我要查找的文本的行中的链接。示例:

<table class="repeater large">
  <tbody>
    <tr>
      <td headers="Cardholder ID" nowrap="nowrap">1234</td>
      <td headers="Cardholder Name">JONATHAN</td>
      <td headers="Client Name">Some Company</td>
      <td headers="CardStatus">Closed</td>
      <td headers="Card Last Four">1234</td>
      <td headers="View" nowrap="nowrap"><a id="button" title="Activity" href="#">Activity</a></td>
    </tr>
    <tr class="alternaterow">
      <td headers="Cardholder ID" nowrap="nowrap">5555</td>
      <td headers="Cardholder Name">JONATHAN</td>
      <td headers="Client Name">Some Company</td>
      <td headers="CardStatus">Active</td>
      <td headers="Card Last Four">555</td>
      <td headers="View" nowrap="nowrap"><a id="button" title="Activity" href="#">Activity</a></td>
    </tr>
  </tbody>
</table>

我想点击持卡人 ID 为 '5555' 的行上的锚点,我很好奇 CapserJS 将如何完成此操作并找到执行此操作的特定选择器。

我已经尝试将表格分解为一个数组并获取特定的子编号。

我试图创建一种方法来访问表格中的特定链接。

function getLinks() {
  var links = document.querySelectorAll('#page > table');
  return Array.prototype.map.call(links, function(e) {
    return e.getAttribute('id');
  });
}

我只需要在我选择的行上获取该链接。

【问题讨论】:

标签: javascript node.js casperjs


【解决方案1】:

您可以遍历表格行,然后从第一个元素中获取 id。 如果文本等于您要查找的 ID,则获取最后一个元素并单击();

var rows = document.querySelectorAll('table tbody tr');

[].forEach.call(rows, function(tr) {
  var td = tr.querySelector('td:first-child');
  if (td.innerText === '5555')
        tr.querySelector('td:last-child').click();
});

见小提琴here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多