我有一个表,表中有多行,最后有一个链接。
我想单击包含我要查找的文本的行中的链接。示例:
<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');
});
}
我只需要在选择的行上获得该链接即可。
答案 0 :(得分:0)
您可以遍历表行,然后从第一个元素获取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