Нажмите на ссылку в строке таблицы на основе текста в этой строке - PullRequest
1 голос
/ 09 июня 2019

У меня есть таблица с несколькими строками и ссылкой на конце.

Я хочу щелкнуть ссылку в строке с текстом, который я ищу.Пример:

<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>

Я хочу щелкнуть привязку в строке, где идентификатор держателя карты равен «5555». Мне интересно узнать, как это будет сделано с CapserJS, и найти конкретный селектор для этого.

Я пытался разбить таблицу на массив и получить конкретный дочерний номер.

Я пытался создать способ добраться до этой конкретной ссылки в таблице.

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

Мне просто нужно получить эту ссылку в выбранном мной ряду.

1 Ответ

0 голосов
/ 09 июня 2019

Вы можете перебрать строки таблицы, а затем получить идентификатор из первого элемента. Если текст соответствует идентификатору, который вы ищете, получите последний элемент и нажмите ();

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();
});

См. Скрипку здесь

...