Comment obtenir le dernier élément d’ancrage d’un site web

J’ai besoin d’obtenir le dernier point d’ancrage d’un site Web, quelle que soit la structure de l’arborescence DOM.

J’ai essayé:

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

Cependant, je récupère toutes les dernières ancres qui existent dans un élément contenant au moins une ancre. Je comprends que cela peut être converti en un tableau et à partir de là, on peut extraire le dernier élément … mais ce n’est tout simplement pas la bonne approche. Alors, quelle est la bonne approche?

Anecdote: Après avoir bousculé les sélecteurs pendant un certain temps, je suis tombé sur:

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

Ce qui a conduit à l’amélioration évidente:

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

Mais je trouve cette solution inefficace et lourde à la fois . Je refuse de croire qu’il n’existe pas de meilleur sélecteur.

Je pense qu’il me manque quelque chose d’évident mais cela ne m’a pas encore frappé.

Quelqu’un peut-il m’éclairer pour savoir s’il existe un meilleur moyen de le faire ou si je pleure le loup sans raison?

EDIT: Bonus Round

De très bonnes réponses à cette question ont été postées jusqu’à présent, tout comme CSS / JavaScript / JQuery. Cependant, pourriez-vous bien préciser si votre réponse est compatible avec tous les navigateurs?

Le javascript simple est:

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

Ceci est compatible avec tous les navigateurs sur tous les navigateurs, et ce, jusqu’aux navigateurs qui comprennent uniquement le DOM niveau 1 (c.-à-d. Circa 2000 – Internet Explorer 5 et Netscape 6).

Pourquoi n’essayez-vous pas $('a:last');

Vous recherchez a:last-of-type . En savoir plus à ce sujet ici: https://css-sortingcks.com/almanac/selectors/l/last-of-type/

Je crois que vous voulez quelque chose comme $("a").last()

Cela examinera tous les éléments d’ancrage de la page et vous indiquera le dernier élément récupéré.

Utiliser uniquement des sélecteurs CSS est délicat, car ceux-ci ont tendance à dépendre de la disposition du DOM et que vous souhaitez que le sélecteur soit indépendant du DOM. Par exemple, le sélecteur a a:last-child ne renverra qu’une balise d’ancrage qui est le dernier élément de son parent. Si la dernière ancre d’une page n’est pas le dernier élément de son parent, l’utilisation de ce sélecteur peut ne pas vous être utile.

Utilisez nth-last-child() . C’est très utile lorsque vous voulez le dernier ou le dernier au dernier.

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

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

http://jsfiddle.net/o5y9959b/