Как найти ссылку на странице на основе ее атрибута href?
Я пытаюсь найти первую ссылку на мою страницу, которая подходит для "AAA"
(пример).
Сначала я попытаюсь получить ссылки с этим href:
$('a[href$="AAA"]')
Затем выберите первый вариант:
$('a[href$="AAA"]')[0]
Затем укажите атрибут title этой ссылки
$('a[href$="AAA"]')[0].attr("title");
Но все это вернет мне "undefined" на каждом шаге.
Как это сделать?
Пример привязки:
<a href="contents/medias/images/news/news_test_big.jpg" title="Nouvelle réalisation en ligne 1 FR" target="_blank" class="imageLink">
Ответы
Ответ 1
Как насчет:
$("a[href='AAA']").first().attr("title")
// or
$("a[href='AAA']:first").attr("title")
Тогда это зависит, если вы хотите, чтобы href был равен "AAA", содержит его, начинает/заканчивается с ним. В этом случае вы бы не использовали href=
, но href$=
, например. Ответ Neil содержит различные типы тестов, которые вы можете использовать.
Если бы вы могли опубликовать свой HTML-код, это тоже помогло бы.
Ответ 2
$('a[href$="AAA"]')
должен работать нормально, но он ищет href
, что конец с AAA.
Try:
$('a[href="AAA"]')
- равно AAA
Или:
$('a[href*="AAA"]')
- содержит AAA
Ответ 3
Предполагая, что у вас есть соответствующая ссылка (т.е. та, которая заканчивается с AAA).
$('a[href="AAA"]:first').attr('title');
должен работать.
Причина, по которой вы получаете undefined для attr
, заключается в том, что это не объект jQuery после применения индексатора к результату запроса, это фактический элемент DOM. Чтобы использовать attr
, он все равно должен быть объектом jQuery. Использование селектора :first
уменьшит результаты запроса до первого соответствующего. Поскольку attr
вернет значение первого совпадающего атрибута, это не является строго необходимым, но я думаю, что это делает цель более четкой. Если вы установите значение атрибута, attr
применится ко всем соответствующим элементам, поэтому в этом случае важно - поэтому я буду использовать его в обоих местах для ясности.
Ответ 4
Как вы его написали, вы ищете href, который заканчивается "AAA". Это ваше намерение?
-
$=
означает "заканчивается на"
-
^=
означает, что "начинается с"
-
~=
означает "содержит"
Ссылки: jQuery Селекторы