Como obter o href do link clicado com jquery?

87

Alguém sabe como posso obter o href do link clicado com jquery? Eu tenho o seguinte link:

    <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>

Escrevi o seguinte código para obter o valor href do link em que cliquei. Mas de alguma forma, isso sempre me retorna o primeiro href do link (ID = 1), embora eu tenha clicado em Teste2 ou Teste3. Alguém sabe o que está acontecendo aqui? e como posso resolver esse problema?

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

Respostas:

176

isso em sua função de retorno de chamada se refere ao elemento clicado.

   $(".addressClick").click(function () {
        var addressValue = $(this).attr("href");
        alert(addressValue );
    });
Daff
fonte
18
Ou pode-se apenas acessá-lo diretamente em vez de criar um objeto jQuery. var addressValue = this.href;
Chris,
1
Para sua informação, se href for relativo, href="sibling_file.htm"então $ (this) .attr ("href") retorna sibling_file.htme retorna this.href https://example.com/folder/sibling_file.htm(que é o que eu esperava e queria.)
Redzarf
18

Você está procurando por $(this).attr("href");

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

Quando você usa $ (". ClassName"), está obtendo o conjunto de todos os elementos que possuem essa classe. Então, quando você chama attr, ele simplesmente retorna o valor do primeiro item da coleção.

Paulo
fonte
4

Suponha que temos três tags âncora como,

<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>

agora no script

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

use esta palavra - chave em vez de className (testClick)

Vishal Ribdiya
fonte