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?

Adi Sembiring
sumber
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
Fiddle di sini: jsfiddle.net/LijoCheeran/t1xs4wo7
LCJ

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

Gareth
sumber
12

Anda bisa mendapatkan nilai href saat ini dengan kode ini:

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

Untuk mendapatkan nilai href dengan ID

$("#mylink").attr("href");
Pangeran Patel
sumber
2

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

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

Wangtong
sumber
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
Jahanggir Jaman
sumber