2010-01-20 6 views
89

Je suis en train d'obtenir la valeur href utilisant jQuery:Comment 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 cela ne fonctionne pas. Pourquoi?

+0

soin de nous dire exactement ce ne fonctionne pas? L'alerte était-elle vide? avez-vous même reçu 2 alertes? Des erreurs js? Ça marche pour moi ... –

+0

upss ..., désolé. le problème est clair cache –

Répondre

225

Vous devez

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

l'intérieur d'un gestionnaire de clic jQuery, l'objet this fait référence à l'élément cliqué, alors que dans votre cas, vous êtes toujours obtenir le href pour la première <a> sur la page. Ceci, soit dit en passant, est pourquoi votre exemple fonctionne, mais votre code réel ne fonctionne pas

2

Cela fonctionne ... Testé dans IE8 (ne pas oublier d'autoriser javascript pour fonctionner si vous testez le fichier de votre ordinateur) et chrome.

+0

Fonctionne en FF 3.5 ainsi –

+0

Chrome peut supprimer la deuxième popup en fonction de vos paramètres, avez-vous testé en chrome? Si oui, commentez votre première alerte et cela fonctionnera. –

1

si la page a un <a> Il fonctionne, mais, beaucoup <a>, doivent utiliser var href = $(this).attr('href');

4

Vous pouvez obtenir la valeur actuelle href par ce Code:

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

pour obtenir la valeur href par ID

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