Как получить значение href с помощью jQuery?

Я пытаюсь получить значение href с помощью 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="#" onclick="location.href='http://jquery.com/'; return false;">jQuery</a>
    </body>
</html>

Но это не сработает. Почему?

Ответ 1

Вам нужно

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

Внутри обработчика jQuery, объект this ссылается на элемент, нажатый, тогда как в вашем случае вы всегда получаете href для первого <a> на странице. Это, кстати, почему ваш пример работает, но ваш реальный код не

Ответ 2

Вы можете получить текущее значение href с помощью этого кода:

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

Чтобы получить значение href по идентификатору

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

Ответ 3

Это работает... Протестировано в IE8 (не забудьте разрешить запуск javascript, если вы тестируете файл с вашего компьютера) и chrome.

Ответ 4

если на странице есть один <a> Он работает, но многие <a> должны использовать var href = $(this).attr('href');