Как найти ссылку на странице на основе ее атрибута href? - PullRequest
18 голосов
/ 22 июня 2010

Я пытаюсь найти первую ссылку на моей странице, URL которой соответствует "AAA" (пример).

Сначала я пытаюсь получить ссылки с помощью этой ссылки:

$('a[href$="AAA"]')

Затем выберите первый:

$('a[href$="AAA"]')[0]

Затем укажите атрибут title этой ссылки

$('a[href$="AAA"]')[0].attr("title");

Но все это возвращает меня "неопределенным" на каждом шагу. Как это сделать?

Пример привязки:

<a href="contents/medias/images/news/news_test_big.jpg" title="Nouvelle réalisation en ligne 1 FR" target="_blank" class="imageLink">

Ответы [ 4 ]

19 голосов
/ 22 июня 2010

Как насчет:

$("a[href='AAA']").first().attr("title")
// or
$("a[href='AAA']:first").attr("title")

Тогда все зависит от того, хотите ли вы, чтобы href был равен 'AAA', содержит его, начинает / заканчивает его.В этом случае вы бы не использовали href=, но, например, href$=. Ответ Нейла содержит различные типы тестов, которые вы можете использовать.

Если бы вы могли опубликовать свой HTML-код, это также помогло бы.

6 голосов
/ 22 июня 2010

$('a[href$="AAA"]') должно работать нормально, но он ищет href s, которые заканчиваются с AAA.

Try: $('a[href="AAA"]') - равно AAA
Или же: $('a[href*="AAA"]') - Содержит AAA

3 голосов
/ 22 июня 2010

Предполагая, что у вас есть соответствующая ссылка (то есть та, которая заканчивается на AAA).

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

должно работать.

Причина, по которой вы получаете неопределенное значение для attr, заключается в том, что это не объект jQuery после применения индексатора к результату запроса, а фактический элемент DOM. Чтобы использовать attr, он все равно должен быть объектом jQuery. Использование селектора :first уменьшит результаты запроса до первого соответствующего. Поскольку attr вернет значение первого соответствующего атрибута, это не является строго необходимым, но я думаю, что это делает намерение более ясным. Если вы установите значение атрибута, attr будет применяться ко всем соответствующим элементам, поэтому в этом случае это важно - поэтому для ясности я бы использовал его в обоих местах.

2 голосов
/ 22 июня 2010

Как вы написали, вы ищете href, который заканчивается на"AAA" Это твое намерение?

  • $= означает «заканчивается»
  • ^= означает «начинается с»
  • ~= означает «содержит»

Ссылки: Селекторы jQuery

...