[英]Getting the href from <a> tag within tables
我正在编写一个Greasemonkey脚本,如果只有一个搜索结果到该页面,它将重定向用户。 我正在尝试从具有许多父表的表中获取链接。 我试图从中获取链接的页面部分如下所示:
<tr class="odd">
<td class="name first">
<a href="need this one">Text</a>
</td>
尝试了document.getElementById('name first'),但仍然没有成功。 我需要任何外部库的帮助。 该页面具有使偶数单元格的背景变暗的设计,因此,如果没有称为“偶数”的类,则它将假定只有一个结果,并且该部分可以正常工作。
使用getElementsByClassName
可能是安全的,因为这是一个Greasemonkey脚本,并且那些浏览器可能支持它 :
var td = document.getElementsByClassName('name first')[0];
var a = td.getElementsByTagName('a')[0];
根据目标页面和您的明显目的(在第一个结果链接之后,如果只有一个搜索结果),您需要的代码如下:
var EvenRow = document.querySelector ("table.listing tr.even");
if (EvenRow == null)
{
var ResultLink = document.querySelector ("table.listing tr.odd td.name.first a");
if (ResultLink != null)
window.location.href = ResultLink.href;
}
笔记:
有多个具有“名称”和“第一”类的节点。 这就是选择器更具体的原因。 这也是Nathan回答失败的原因(出于某种原因,他忽略了tr.odd
)。
不需要checkExistOfEven()
函数。
在这种情况下,您可能需要window.location.href =
而不是window.location.replace()
。 前者会在历史记录中保留搜索结果页面,以防万一。
使用document.querySelector可能更容易:
var a = document.querySelector("td.first.name a");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.