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

时间:2015-11-05 21:29:15

标签: javascript jquery html css

无论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有关。但是,您可以补充一下,您的答案是否与浏览器兼容?

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

直截了当的javascript是:

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

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

答案 2 :(得分:1)

您正在寻找a:last-of-type。在此处阅读更多相关信息:https://css-tricks.com/almanac/selectors/l/last-of-type/

答案 3 :(得分:1)

我相信你想要像$("a").last()

这样的东西

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

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

答案 4 :(得分:0)

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

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

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

http://jsfiddle.net/o5y9959b/