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?


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


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");

2

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


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.