Wie erhalte ich einen href-Wert mit jQuery?

162

Ich versuche, mit jQuery einen href-Wert zu erhalten:

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

Aber es funktioniert nicht. Warum?

Adi Sembiring
quelle
Möchten Sie uns mitteilen, was genau nicht funktioniert hat? War der Alarm leer? Hast du sogar 2 Benachrichtigungen bekommen? Irgendwelche js Fehler? Es funktioniert für mich ...
Ben Rowe
upss ..., sorry. Das Problem ist klar Cache
Adi Sembiring

Antworten:

350

Du brauchst

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

In einem jQuery-Klick-Handler thisbezieht sich das Objekt auf das angeklickte Element, während Sie in Ihrem Fall immer die href für das erste Element <a>auf der Seite erhalten. Dies ist übrigens der Grund, warum Ihr Beispiel funktioniert, Ihr echter Code jedoch nicht

Gareth
quelle
12

Sie können den aktuellen href-Wert mit diesem Code abrufen:

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

Um den href-Wert anhand der ID zu erhalten

$("#mylink").attr("href");
Prinz Patel
quelle
2

Es funktioniert ... Getestet in IE8 (vergessen Sie nicht, Javascript laufen zu lassen, wenn Sie die Datei von Ihrem Computer aus testen) und Chrome.

AlfaTeK
quelle
Chrome kann das zweite Popup abhängig von Ihren Einstellungen unterdrücken. Haben Sie in Chrome getestet? Wenn ja, kommentieren Sie Ihre erste Warnung aus und es wird funktionieren.
Michael La Voie
2

Wenn die Seite eine hat, <a>funktioniert es , aber , viele <a>, müssen verwendenvar href = $(this).attr('href');

Wangtong
quelle
1
gibt undefinierte Ausgabe
VishalParkash
0

Erwähnenswert ist das

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
Jahanggir Jaman
quelle