¿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é?

Adi Sembiring
fuente
¿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

Gareth
fuente
12

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

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

Para obtener el valor href por ID

$("#mylink").attr("href");
Príncipe Patel
fuente
2

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

AlfaTeK
fuente
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');

wangtong
fuente
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
Jahanggir Jaman
fuente