Как получить href нажатой ссылки с помощью jquery?

87

Кто-нибудь знает, как я могу получить href щелкнутой ссылки с помощью jquery? У меня есть следующая ссылка:

    <a  href="ID=1" class="testClick">Test1.</a>
    <br />
    <a  href="ID=2" class="testClick">Test2.</a>
    <br />
    <a  href="ID=3" class="testClick">Test3.</a>

Я написал следующий код, чтобы получить значение href из ссылки, по которой я щелкнул. Но почему-то это всегда возвращает мне href 1-й ссылки (ID = 1), даже если я нажал на Test2 или Test3. Кто-нибудь знает, что здесь происходит? и как я могу решить эту проблему?

    $(".testClick").click(function () {
        var value = $(".testClick").attr("href");
        alert(value );
    });
Джин Ён
источник

Ответы:

176

this в вашей функции обратного вызова относится к нажатому элементу.

   $(".addressClick").click(function () {
        var addressValue = $(this).attr("href");
        alert(addressValue );
    });
Дафф
источник
18
Или можно просто получить к нему доступ напрямую, вместо создания объекта jQuery. var addressValue = this.href;
Крис
1
К вашему сведению, если href является относительным, href="sibling_file.htm"тогда возвращается $ (this) .attr ("href"), а возвращается sibling_file.htmthis.href https://example.com/folder/sibling_file.htm(это то, что я ожидал и хотел.)
Redzarf
10
$(".testClick").click(function () {
         var value = $(this).attr("href");
         alert(value );     
}); 

Когда вы используете $ (". ClassName"), вы получаете набор всех элементов, имеющих этот класс. Затем, когда вы вызываете attr, он просто возвращает значение первого элемента в коллекции.

Павел
источник
4

Предположим, у нас есть три тега привязки, например,

<a  href="ID=1" class="testClick">Test1.</a>
<br />
<a  href="ID=2" class="testClick">Test2.</a>
<br />
<a  href="ID=3" class="testClick">Test3.</a>

теперь в сценарии

$(".testClick").click(function () {
        var anchorValue= $(this).attr("href");
        alert(anchorValue);
});

используйте это ключевое слово вместо className (testClick)

Vishal Ribdiya
источник