クリックされたリンクの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値を取得するために、次のようなコードを記述しました。しかし、どういうわけか、Test2またはTest3をクリックした場合でも、これは常に最初のリンクのhref(ID = 1)を返します。ここで何が起こっているのか誰か知っていますか?どうすればこの問題を解決できますか?

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

回答:


176

コールバック関数のこれは、クリックされた要素を参照します。

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

18
または、jQueryオブジェクトを作成する代わりに、直接アクセスすることもできます。var addressValue = this.href;
クリス

1
href="sibling_file.htm"参考までに、hrefが相対的である場合、$(this).attr( "href")が返されsibling_file.htm、this.hrefが返されますhttps://example.com/folder/sibling_file.htm(これは私が期待していたものです)
Redzarf 2017


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

$( "。className")を使用すると、そのクラスを持つすべての要素のセットを取得します。次に、attrを呼び出すと、コレクションの最初のアイテムの値が返されます。


4

のような3つのアンカータグがあるとします。

<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)の代わりにこのキーワードを使用しください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.