Выберите ‹a›, href которого заканчивается строкой

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

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


person Aximili    schedule 20.11.2008    source источник


Ответы (4)


   $('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-...")
person tvanfosson    schedule 20.11.2008
comment
что-то недавно изменилось. $ ('[href $ = - abc]') раньше работало. Теперь для этого требуются кавычки $ ('[href $ = - abc]') Я не знаю, когда это изменилось. Может быть, это всегда должно было требовать цитат и просто так раньше работало. - person gman; 25.07.2011
comment
Обратите внимание, что ABC чувствителен к регистру! (Просто потратил некоторое время, чтобы понять это ...) - person Louis Somers; 24.05.2012
comment
Как получить href не содержит ABC в jquery - person sf.dev; 01.05.2014
comment
@ sf.dev $('a').filter(function() { return !this.href || !this.href.match(/ABC/); }); - person tvanfosson; 01.05.2014
comment
Теперь это работает с vanilla javascirpt. Для этого можно просто использовать document.querySelectorAll('a[href$="ABC"]'). - person k-nut; 01.03.2015
comment
!= не является допустимым селектором атрибута - person bitten; 26.10.2016
comment
@bitten вопрос о селекторах атрибутов jQuery. Это допустимая условная операция в jQuery. - person tvanfosson; 26.10.2016
comment
если кто-то пытается использовать var var name = "ABC"; $('a[href$='+name+']') - person Arun; 31.01.2019

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

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

person Ash    schedule 24.06.2010
comment
Исправление: которое заканчивается на ABC. - person sparkyspider; 22.08.2011
comment
Собственно, небольшая разница есть. Это выберет первую ссылку с заданным href, что полезно, если вам нужно изменить только одну. - person alekwisnia; 15.03.2012

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

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

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

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

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

a[href$=ABC]

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

person CertainPerformance    schedule 21.05.2019

person    schedule
comment
Для будущих посетителей, которым этот ответ может помочь. - person sscirrus; 24.04.2013
comment
@Sumit обратите внимание, что ваш ответ верен только в том случае, если ABC OP ссылается на идентификатор. - person sscirrus; 24.04.2013