Comment obtenir la valeur href en utilisant jQuery?


163

J'essaie d'obtenir la valeur href en utilisant jQuery:

<html>
    <head>
        <title>Jquery Test</title>
         <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
        <script type="text/javascript">
        $(document).ready(function() {
            $("a").click(function(event) {
                alert("As you can see, the link no longer took you to jquery.com");
                var href = $('a').attr('href');
                alert(href);
                event.preventDefault();
            });
        });
        </script>
    </head>
    <body>
        <a href="http://jquery.com/">jQuery</a>
    </body>
</html>

Mais ça ne marche pas. Pourquoi?


Voulez-vous nous dire ce qui n'a pas fonctionné exactement? l'alerte était-elle vide? avez-vous même reçu 2 alertes? Des erreurs js? Ça marche pour moi ...
Ben Rowe

upss ..., désolé. le problème est d'effacer le cache
Adi Sembiring

Réponses:


351

Vous avez besoin

var href = $(this).attr('href');

Dans un gestionnaire de clics jQuery, l' thisobjet fait référence à l'élément sur lequel vous avez cliqué, alors que dans votre cas, vous obtenez toujours le href pour le premier <a>sur la page. C'est d'ailleurs pourquoi votre exemple fonctionne mais pas votre vrai code


12

Vous pouvez obtenir la valeur href actuelle par ce code:

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

Pour obtenir la valeur href par ID

$("#mylink").attr("href");

2

Cela fonctionne ... Testé dans IE8 (n'oubliez pas d'autoriser l'exécution de javascript si vous testez le fichier depuis votre ordinateur) et chrome.


Chrome peut supprimer la deuxième fenêtre contextuelle en fonction de vos paramètres, avez-vous testé dans Chrome? Si tel est le cas, commentez votre première alerte et cela fonctionnera.
Michael La Voie

2

si la page en a un <a>It Works , mais , plusieurs <a>, doivent utiliservar href = $(this).attr('href');


1
donne une sortie non définie
VishalParkash

0

Il vaut la peine de mentionner que

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.