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