繁体   English   中英

从<a>表格中的标签</a>获取href

[英]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;
}


笔记:

  1. 有多个具有“名称”和“第一”类的节点。 这就是选择器更具体的原因。 这也是Nathan回答失败的原因(出于某种原因,他忽略了tr.odd )。

  2. 不需要checkExistOfEven()函数。

  3. 在这种情况下,您可能需要window.location.href =而不是window.location.replace() 前者会在历史记录中保留搜索结果页面,以防万一。

使用document.querySelector可能更容易:

var a = document.querySelector("td.first.name a");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM