Bagaimana cara mendapatkan nilai href menggunakan jQuery?


163

Saya mencoba untuk mendapatkan nilai href menggunakan 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>

Tapi itu tidak berhasil. Mengapa?


Ingin memberi tahu kami apa yang sebenarnya tidak berhasil? apakah peringatan itu kosong? apakah Anda bahkan mendapatkan 2 peringatan? Ada kesalahan js? Ini bekerja untuk saya ...
Ben Rowe

upss ..., maaf. masalahnya adalah cache yang jelas
Adi Sembiring

Jawaban:


351

Kamu butuh

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

Di dalam handler klik jQuery, thisobjek merujuk ke elemen yang diklik, sedangkan dalam kasus Anda, Anda selalu mendapatkan href untuk yang pertama <a>di halaman. Ini, kebetulan, adalah contoh mengapa Anda bekerja tetapi kode asli Anda tidak


12

Anda bisa mendapatkan nilai href saat ini dengan kode ini:

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

Untuk mendapatkan nilai href dengan ID

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

2

Ini berfungsi ... Diuji dalam IE8 (jangan lupa untuk memungkinkan javascript berjalan jika Anda menguji file dari komputer Anda) dan chrome.


Chrome dapat menekan munculan kedua tergantung pada pengaturan Anda, apakah Anda menguji di chrome? Jika demikian, komentari peringatan pertama Anda dan itu akan berhasil.
Michael La Voie

2

jika halaman memiliki satu <a>Ini Berhasil, tetapi, banyak <a>, harus digunakanvar href = $(this).attr('href');


1
memberikan output yang tidak terdefinisi
VishalParkash

0

Perlu disebutkan itu

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.