จะรับ href ของลิงค์ที่คลิกด้วย jquery ได้อย่างไร


87

มีใครรู้บ้างว่าฉันจะรับ href ของลิงค์ที่คลิกด้วย jquery ได้อย่างไร ฉันมีลิงค์ดังต่อไปนี้:

    <a  href="ID=1" class="testClick">Test1.</a>
    <br />
    <a  href="ID=2" class="testClick">Test2.</a>
    <br />
    <a  href="ID=3" class="testClick">Test3.</a>

ฉันเขียนโค้ดดังต่อไปนี้เพื่อรับค่า href จากลิงค์ที่ฉันคลิก แต่อย่างใดสิ่งนี้จะส่งคืน href ของลิงค์แรก (ID = 1) ให้ฉันเสมอแม้ว่าฉันจะคลิกที่ Test2 หรือ Test3 มีใครรู้บ้างว่ามันเกิดอะไรขึ้นที่นี่? และฉันจะแก้ปัญหานี้ได้อย่างไร

    $(".testClick").click(function () {
        var value = $(".testClick").attr("href");
        alert(value );
    });

คำตอบ:


176

สิ่งนี้ในฟังก์ชันเรียกกลับของคุณหมายถึงองค์ประกอบที่คลิก

   $(".addressClick").click(function () {
        var addressValue = $(this).attr("href");
        alert(addressValue );
    });

18
หรือสามารถเข้าถึงได้โดยตรงแทนที่จะสร้างวัตถุ jQuery var addressValue = this.href;
Chris

1
FYI ถ้า href สัมพันธ์กันhref="sibling_file.htm"แล้ว $ (this) .attr ("href") จะส่งกลับsibling_file.htmและ this.href จะส่งกลับhttps://example.com/folder/sibling_file.htm(ซึ่งเป็นสิ่งที่ฉันคาดหวังและต้องการ)
Redzarf


10
$(".testClick").click(function () {
         var value = $(this).attr("href");
         alert(value );     
}); 

เมื่อคุณใช้ $ (". className") คุณจะได้รับชุดขององค์ประกอบทั้งหมดที่มีคลาสนั้น จากนั้นเมื่อคุณเรียก attr ก็จะส่งคืนค่าของรายการแรกในคอลเลกชัน


4

สมมติว่าเรามีแท็ก Anchor สามแท็กเช่น

<a  href="ID=1" class="testClick">Test1.</a>
<br />
<a  href="ID=2" class="testClick">Test2.</a>
<br />
<a  href="ID=3" class="testClick">Test3.</a>

ตอนนี้อยู่ในสคริปต์

$(".testClick").click(function () {
        var anchorValue= $(this).attr("href");
        alert(anchorValue);
});

ใช้คีย์เวิร์ดนี้แทน className (testClick)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.