Làm thế nào để có được giá trị href khi sử dụng jQuery?


163

Tôi đang cố gắng để có được giá trị bằng cách sử dụng 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>

Nhưng nó không hoạt động. Tại sao?


Quan tâm để cho chúng tôi biết chính xác những gì không làm việc? cảnh báo có trống không? bạn thậm chí đã nhận được 2 thông báo? Bất kỳ lỗi js? Nó làm việc cho tôi ...
Ben Rowe

xin lỗi ..., xin lỗi. vấn đề là xóa bộ nhớ cache
Adi bắt đầu

Câu trả lời:


351

Bạn cần

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

Trong trình xử lý nhấp chuột jQuery, thisđối tượng đề cập đến phần tử được nhấp, trong khi đó, trong trường hợp của bạn, bạn luôn nhận được href cho lần đầu tiên <a>trên trang. Điều này, tình cờ, là lý do tại sao ví dụ của bạn hoạt động nhưng mã thực sự của bạn không


12

Bạn có thể nhận giá trị hiện tại bằng mã này:

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

Để nhận giá trị href bằng ID

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

2

Nó hoạt động ... Đã thử nghiệm trong IE8 (đừng quên cho phép javascript chạy nếu bạn đang kiểm tra tệp từ máy tính của mình) và chrome.


Chrome có thể chặn cửa sổ bật lên thứ hai tùy thuộc vào cài đặt của bạn, bạn đã thử nghiệm bằng chrome chưa? Nếu vậy, nhận xét cảnh báo đầu tiên của bạn và nó sẽ hoạt động.
Michael La Voie

2

nếu trang có một <a>Nó hoạt động , nhưng nhiều <a>, phải sử dụngvar href = $(this).attr('href');


1
cung cấp đầu ra không xác định
VishalParkash

0

Điều đáng nói là

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.