¿Cómo obtener el valor href usando jQuery?


163

Estoy tratando de obtener el valor href usando 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>

Pero no funciona. ¿Por qué?


¿Te importaría decirnos qué no funcionó exactamente? ¿Estaba vacía la alerta? ¿Recibiste 2 alertas? Cualquier error js? Me está funcionando ...
Ben Rowe

upss ... lo siento. el problema es borrar caché
Adi Sembiring

Respuestas:


351

Necesitas

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

Dentro de un controlador de clic jQuery, el thisobjeto se refiere al elemento en el que se hizo clic, mientras que en su caso siempre obtiene el href para el primero <a>en la página. Por cierto, es por eso que su ejemplo funciona pero su código real no


12

Puede obtener el valor href actual con este código:

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

Para obtener el valor href por ID

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

2

Funciona ... Probado en IE8 (no olvide permitir que se ejecute JavaScript si está probando el archivo desde su computadora) y Chrome.


Chrome puede suprimir la segunda ventana emergente dependiendo de su configuración, ¿estaba probando en Chrome? Si es así, comente su primera alerta y funcionará.
Michael La Voie

2

si la página tiene uno <a>, funciona, pero muchos <a>, tienen que usarvar href = $(this).attr('href');


1
da salida indefinida
VishalParkash

0

Vale la pena mencionar que

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.