Seleziona <a> quale href termina con una stringa


669

È possibile utilizzare jQuery per selezionare tutti i <a>collegamenti che href termina con "ABC"?

Ad esempio, se voglio trovare questo link <a href="http://server/page.aspx?id=ABC">

Risposte:


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

La documentazione per i selettori è disponibile all'indirizzo http://docs.jquery.com/Selectors

Per attributi:

= 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-...")

20
qualcosa è cambiato di recente. $ ('[href $ = - abc]') funzionava. Ora richiede virgolette $ ('[href $ = "- abc"]') Non so quando è cambiato. Forse doveva sempre richiedere delle virgolette e prima funzionava.
Gman,

12
Nota che "ABC" fa distinzione tra maiuscole e minuscole! (Ho appena trascorso un po 'di tempo per capirlo ...)
Louis Somers,

Come ottenere href non contiene ABC in jquery
sf.dev

1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson

9
Ora funziona con vaniglia javascirpt. Puoi semplicemente usare document.querySelectorAll('a[href$="ABC"]')per raggiungere questo obiettivo.
k-nut,

21
$('a[href$="ABC"]:first').attr('title');

Ciò restituirà il titolo del primo collegamento che ha un URL che termina con "ABC".


4
Correzione: che termina con ABC
sparkyspider

In realtà, c'è una leggera differenza. Questo selezionerà il primo link con href dato, che è utile se devi cambiarne solo uno.
alekwisnia,

15
$("a[href*='id=ABC']").addClass('active_jquery_menu');

2
Per i futuri visitatori che potrebbero essere aiutati da quella risposta.
sscirrus,

@Sumit nota che la tua risposta è corretta solo se l'OP fa ABCriferimento a un ID.
sscirrus,


2

Nel caso in cui non volessi importare una grande libreria come jQuery per realizzare qualcosa di così banale, puoi invece usare il metodo integrato querySelectorAll. Quasi tutte le stringhe di selezione utilizzate per jQuery funzionano anche con i metodi DOM:

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

Oppure, se sai che esiste un solo elemento corrispondente:

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

In genere puoi omettere le virgolette attorno al valore dell'attributo se il valore che stai cercando è alfanumerico, ad esempio, qui, puoi anche utilizzare

a[href$=ABC]

ma le virgolette sono più flessibili e generalmente più affidabili .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.