如何获取网站的最后一个锚点元素

How to get the last anchor element of a website

本文关键字:最后一个 元素 网站 何获取 获取      更新时间:2023-09-26

无论DOM树结构如何,我都需要获得网站的最后一个锚点。

我试过:

$(document).ready(function(){
    var lastAnchor = $(this).find("a:last-child");
    alert(lastAnchor);
});

然而,我得到了任何元素中存在的所有最后一个锚,其中至少包含一个锚。我知道这可以转换为数组,从中可以提取最后一个元素。。。但这不是正确的做法。那么什么是的正确方法呢?

有趣的事实:在摆弄了选择器一段时间后,我想出了:

$(this).find("a:last-child").find(":last-child")

这导致了明显的改进:

$(this).find("a:last-child :last-child")

但我发现这个解决方案既效率低下繁琐。我拒绝相信没有更好的选择者。

我想我错过了一些显而易见的东西,但它还没有击中我。

有人能告诉我,是否有更好的方法可以做到这一点,或者我是在无缘无故地哭喊狼来了?

编辑:奖励回合

到目前为止,这个问题已经得到了很好的答案,所有的答案都是CSS/JavaScript/JQuery。但是,你能补充一下你的答案是否与跨浏览器兼容吗?

为什么不试试$('a:last');

简单的javascript是:

var anchors = document.getElementsByTagName("a");
var lastAnchor = anchors[(anchors.length - 1)];

这在所有浏览器中都是跨浏览器兼容的,一直到那些只理解DOM Level 1的浏览器(即大约2000年的Internet Explorer 5和Netscape 6)。

您正在寻找a:last-of-type。点击此处了解更多信息:https://css-tricks.com/almanac/selectors/l/last-of-type/

我相信你想要$("a").last() 这样的东西

这将查看页面中的所有锚元素,并为您提供最后一个检索到的锚元素。

只使用CSS选择器是很棘手的,因为这些选择器往往依赖于DOM排列,并且您希望选择器与DOM无关。例如,a:last-child选择器将只返回一个锚点标记,该标记是其父元素中的最后一个元素。如果页面上的最后一个锚点不是其父元素中的最后一个子元素,则使用该选择器可能对您没有帮助。

使用nth-last-child()。当你想要倒数第一或倒数第二时,它非常有用。

$(this).find("a:nth-last-child(1)")

https://api.jquery.com/nth-last-child-selector/

http://jsfiddle.net/o5y9959b/