Как получить значение href, используя jQuery?


163

Я пытаюсь получить значение 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="http://jquery.com/">jQuery</a>
    </body>
</html>

Но это не работает. Зачем?


Хотите рассказать нам, что именно не сработало? оповещение было пустым? ты вообще получил 2 оповещения? Любые ошибки JS? Это работает для меня ...
Бен Роу

Упс ... прости. проблема ясного кэша
Ади Сембиринг

Скрипка здесь: jsfiddle.net/LijoCheeran/t1xs4wo7
LCJ

Ответы:


351

Тебе нужно

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

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


12

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

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

Чтобы получить значение href по ID

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

2

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


Chrome может отключить второе всплывающее окно в зависимости от ваших настроек, тестировали ли вы в Chrome? Если это так, закомментируйте свое первое предупреждение, и оно будет работать.
Michael La Voie

2

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


1
дает неопределенный вывод
VishalParkash

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.