Выберите <a>, какой раздел заканчивается строкой

669

Можно ли с помощью jQuery выбрать все <a>ссылки, которые href оканчивается на «ABC»?

Например, если я хочу найти эту ссылку <a href="http://server/page.aspx?id=ABC">

Aximili
источник

Ответы:

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

Документацию по выбору можно найти по адресу http://docs.jquery.com/Selectors.

Для атрибутов:

= 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
источник
20
что-то изменилось недавно. $ ('[href $ = - abc]') раньше работал. Теперь он требует кавычек $ ('[href $ = "- abc"]'), я не знаю, когда он изменился. Может быть, всегда предполагалось, что нужно кавычки, а раньше это просто работало.
мужчина
12
Обратите внимание, что «ABC» чувствителен к регистру! (Просто потратил некоторое время, чтобы понять это ...)
Луи Сомерс
Как получить href не содержит ABC в jquery
sf.dev
1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson
9
Это работает с ванильным Javascirpt сейчас. Вы можете просто использовать document.querySelectorAll('a[href$="ABC"]')для достижения этой цели.
K-Nut
21
$('a[href$="ABC"]:first').attr('title');

Это вернет название первой ссылки, которая имеет URL, который заканчивается на «ABC».

ясень
источник
4
Исправление: Которое заканчивается ABC
sparkyspider
На самом деле, есть небольшая разница. Это выберет первую ссылку с указанным href, что полезно, если вам нужно изменить только одну.
Alekwisnia
15
$("a[href*='id=ABC']").addClass('active_jquery_menu');
Sumit
источник
2
Для будущих посетителей, которым может помочь этот ответ.
sscirrus
@ Заметьте, что ваш ответ верен только в том случае, если ОП ABCссылается на идентификатор.
sscirrus
6
$("a[href*=ABC]").addClass('selected');
Ганеш Анугу
источник
2

На тот случай, если вы не хотите импортировать большую библиотеку, такую ​​как jQuery, для выполнения чего-то такого тривиального, вы можете querySelectorAllвместо этого использовать встроенный метод . Почти все строки селектора, используемые для jQuery, работают также с методами DOM:

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

Или, если вы знаете, что есть только один соответствующий элемент:

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

Обычно вы можете опускать кавычки вокруг значения атрибута, если искомое значение является буквенно-цифровым, например, здесь вы также можете использовать

a[href$=ABC]

но цитаты более гибкие и в целом более надежные .

CertainPerformance
источник