2010-06-22 3 views
18

Я пытаюсь найти первую ссылку на мою страницу, которая подходит для "AAA" (пример).Как найти ссылку на странице, основанной на ее атрибуте href?

я сначала попытаться получить ссылки с этой HREF:

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

Тогда Selec Первый:

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

Затем целевой атрибут заголовка этой ссылке

$('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"> 
+0

Вы можете разместить образец одной из актуальных '' тегов? – Pointy

+0

Вот одна из ссылок: Спасибо ¨! – daviddarx

+0

@daviddarx Я добавил пример на ваш вопрос. –

ответ

19

Как насчет:

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

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

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

+0

$ ("a [href = 'AAA']: first") также будет работать –

+0

@neil: true, я добавил его к своему ответу – marcgg

+0

Я попробую, я вернусь через несколько минут – daviddarx

3

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

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

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

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

+0

+1 - это правда, хорошая точка в '[0]' - вот что вызвало ошибку. но '$ ('a [href $ =" AAA "]') [0] .attr (" title ");' слишком далеко - он не возвращает 'undefined', но генерирует исключение:" .attr is не функция " – Kobi

2

Как вы его написали, вы ищете href, что заканчивается на «AAA». Это ваше намерение?

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

Ссылки: jQuery Selectors

6

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

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

Смежные вопросы