Selecione <a> qual href termina com alguma string


669

É possível usar o jQuery para selecionar todos os <a>links cujo href termina com "ABC"?

Por exemplo, se eu quiser encontrar este link <a href="http://server/page.aspx?id=ABC">

Respostas:


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

A documentação do seletor pode ser encontrada em http://docs.jquery.com/Selectors

Para atributos:

= 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
algo mudou recentemente. $ ('[href $ = - abc]') costumava funcionar. Agora ele requer aspas $ ('[href $ = "- abc"]') que não sei quando foi alterado. Talvez sempre devesse exigir citações e funcionasse antes.
gman

12
Observe que "ABC" faz distinção entre maiúsculas e minúsculas! (Apenas passamos algum tempo para descobrir isso ...)
Louis Somers

Como chegar href não contém ABC em jQuery
sf.dev

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

9
Isso funciona com baunilha javascirpt agora. Você pode simplesmente usar document.querySelectorAll('a[href$="ABC"]')para conseguir isso.
k-nut

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

Isso retornará o título do primeiro link que possui uma URL que termina com "ABC".


4
Correção: Que termina com ABC
sparkyspider

Na verdade, há uma pequena diferença. Isso selecionará o primeiro link com o href especificado, o que é útil se você precisar alterar apenas um.
alekwisnia

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

2
Para futuros visitantes que podem ser ajudados por essa resposta.
Sscirrus

@ Note que sua resposta está correta apenas se os OPs ABCse referirem a um ID.
sscirrus


2

Caso você não queira importar uma grande biblioteca como o jQuery para realizar algo tão trivial, use o método querySelectorAllinterno. Quase todas as seqüências de seletor usadas para jQuery também funcionam com métodos DOM:

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

Ou, se você souber que existe apenas um elemento correspondente:

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

Geralmente, você pode omitir as aspas ao redor do valor do atributo se o valor que você está procurando for alfanumérico; por exemplo, aqui, você também pode usar

a[href$=ABC]

mas as cotações são mais flexíveis e geralmente mais confiáveis .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.