Как получить значение 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>на странице. Вот почему, кстати, ваш пример работает, а ваш реальный код - нет

Gareth
источник
12

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

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

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

$("#mylink").attr("href");
Принц Патель
источник
2

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

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

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

wangtong
источник
1
дает неопределенный вывод
VishalParkash
0

Стоит отметить, что

$('a').attr('href'); // gets the actual value
$('a').prop('href'); // gets the full URL always
Джаханггир Джаман
источник