Comment obtenir le href du lien cliqué avec jquery?

87

Quelqu'un sait-il comment puis-je obtenir le href du lien cliqué avec jquery? J'ai le lien comme suit:

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

J'ai écrit un code comme suit pour obtenir la valeur href du lien sur lequel j'ai cliqué. Mais d'une manière ou d'une autre, cela me renvoie toujours le href (ID = 1) du premier lien même si j'ai cliqué sur Test2 ou Test3. Est-ce que quelqu'un sait ce qui se passe ici? et comment puis-je résoudre ce problème?

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

Réponses:

176

ceci dans votre fonction de rappel fait référence à l'élément cliqué.

   $(".addressClick").click(function () {
        var addressValue = $(this).attr("href");
        alert(addressValue );
    });
Daff
la source
18
Ou on peut simplement y accéder directement au lieu de créer un objet jQuery. var addressValue = this.href;
Chris
1
Pour info, si le href est relatif, href="sibling_file.htm"alors $ (this) .attr ("href") retourne sibling_file.htmet this.href retourne https://example.com/folder/sibling_file.htm(ce que je m'attendais et voulais.)
Redzarf
18

Vous cherchez $(this).attr("href");

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

Lorsque vous utilisez $ (". ClassName"), vous obtenez l'ensemble de tous les éléments qui ont cette classe. Ensuite, lorsque vous appelez attr, il renvoie simplement la valeur du premier élément de la collection.

Paul
la source
4

Supposons que nous ayons trois balises d'ancrage comme,

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

maintenant dans le script

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

utilisez ce mot - clé au lieu de className (testClick)

vishal ribdiya
la source