Sélectionnez <a> quelle href se termine par une chaîne

669

Est-il possible d'utiliser jQuery pour sélectionner tous les <a>liens qui se terminent par "ABC"?

Par exemple, si je veux trouver ce lien <a href="http://server/page.aspx?id=ABC">

Aximili
la source

Réponses:

1550
   $('a[href$="ABC"]')...

La documentation du sélecteur est disponible sur http://docs.jquery.com/Selectors

Pour les attributs:

= is exactly equal
!= is not equal
^= is starts with
$= is ends with
*= is contains
~= is contains word
|= is starts with prefix (i.e., |= "prefix" matches "prefix-...")
tvanfosson
la source
20
quelque chose a changé récemment. $ ('[href $ = - abc]') fonctionnait. Maintenant, il nécessite des guillemets $ ('[href $ = "- abc"]') Je ne sais pas quand il a changé. Peut-être que cela devait toujours exiger des devis et que ça fonctionnait auparavant.
gman
12
Notez que "ABC" est sensible à la casse! (Je viens de passer un peu de temps à trouver celui-là ...)
Louis Somers
Comment obtenir href ne contient pas ABC dans jquery
sf.dev
1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson
9
Cela fonctionne avec le javascirpt vanille maintenant. Vous pouvez simplement utiliser document.querySelectorAll('a[href$="ABC"]')pour y parvenir.
k-nut
21
$('a[href$="ABC"]:first').attr('title');

Cela renverra le titre du premier lien dont l'URL se termine par "ABC".

Cendre
la source
4
Correction: qui se termine par ABC
sparkyspider
En fait, il y a une légère différence. Cela sélectionnera le premier lien avec un href donné, ce qui est utile si vous devez en changer un seul.
alekwisnia
15
$("a[href*='id=ABC']").addClass('active_jquery_menu');
Sumit
la source
2
Pour les futurs visiteurs qui pourront être aidés par cette réponse.
sscirrus
@Sumit notez que votre réponse n'est correcte que si les PO ABCse réfèrent à un ID.
sscirrus
6
$("a[href*=ABC]").addClass('selected');
Ganesh Anugu
la source
2

Juste au cas où vous ne voulez pas importer une grande bibliothèque comme jQuery pour accomplir quelque chose d'aussi trivial, vous pouvez utiliser la méthode intégrée à la querySelectorAllplace. Presque toutes les chaînes de sélecteurs utilisées pour jQuery fonctionnent également avec les méthodes DOM:

const anchors = document.querySelectorAll('a[href$="ABC"]');

Ou, si vous savez qu'il n'y a qu'un seul élément correspondant:

const anchor = document.querySelector('a[href$="ABC"]');

Vous pouvez généralement omettre les guillemets autour de la valeur d'attribut si la valeur que vous recherchez est alphanumérique, par exemple, ici, vous pouvez également utiliser

a[href$=ABC]

mais les devis sont plus flexibles et généralement plus fiables .

CertainPerformance
la source