如何使用jQuery获取已单击链接的href?

90

有人知道如何使用jQuery获取所点击链接的href吗?我有以下链接:

    <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值。但是无论我点击Test2或Test3,它总是返回第一个链接的href(ID = 1)。有人知道这里发生了什么吗?我该如何解决这个问题?

    $(".testClick").click(function () {
        var value = $(".testClick").attr("href");
        alert(value );
    });
4个回答

183

this 在你的回调函数中指向被点击的元素。

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

18
可以直接访问它,而不是创建一个jQuery对象。var addressValue = this.href; - Chris
1
顺便提一下,如果href是相对的 href="sibling_file.htm",那么$(this).attr("href")返回sibling_file.htm,而this.href返回https://example.com/folder/sibling_file.htm(这正是我所期望和想要的)。 - Redzarf

19
您正在寻找$(this).attr("href");

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

当你使用$(".className")时,你会得到拥有该类的所有元素集合。然后,当你调用attr时,它只会返回集合中第一个元素的值。


6
假设我们有三个锚点标签,如下所示:
<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);
});

请使用 this 关键词代替 className (testClick)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接