页面上有一堆超链接,每个超链接都在标签下。
<h2 class="lk">
<a href="https://en.wikipedia.org/wiki/Something">Something - Wikipedia</a>
</h2>
<h2 class="lk">
<a href="https://genius.com/The-beatles-something-lyrics">The Beatles – Something Lyrics | Genius Lyrics</a>
</h2>
..等等
我想搜索是否有任何超链接包含 vimeo.com。如果是,请单击它,否则单击底部旁边 <td class="cur">
的分页链接。 .在这种情况下,“第 2 页”。
<td class="cur"><a aria-label="Pg 1" class="pg" href=""></a></td>
<td><a aria-label="Pg 2" class="pg" href=""></a></td>
然后再次在第 2 页,搜索标签下的一堆超链接。
如果超链接包含 vimeo.com,请单击它,否则单击 <td class="cur">
旁边的链接.在这种情况下,“第 3 页”。
<td><a aria-label="Pg 1" class="pg" href=""></a></td>
<td class="cur"><a aria-label="Pg 2" class="pg" href=""></a></td>
<td><a aria-label="Pg 3" class="pg" href=""></a></td>
等等。
我如何在 JavaScript/jQuery 中实现它?
最佳答案
您可以使用 "attribute contains" (*=
) selector :
$('a[href*="vimeo.com"]').click();
但是,不要指望浏览器允许您以这种方式打开一堆新标签页,至少在没有先与用户确认的情况下是这样。
关于 aria-label="Pg 2"
链接,无法绕过 if
:
var links = $('a[href*="vimeo.com"]');
if (links.length) {
links = $('a[aria-label="Pg 2"]'); // If you only want one, use `.first()` on the end
}
links.click();
关于javascript - 通过很多链接搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52568289/