如何使用jquery获取点击链接的href?


86

有谁知道如何通过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 );
    });

Answers:


175

回调函数中的this指的是clicked元素。

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

17
或者可以直接访问它而不是创建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


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)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.