Як отримати значення 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 помилки? Це працює для мене ...
Бен Роу

upss ..., вибач. проблема - кеш ясний
Аді Сембінг

Відповіді:


351

Тобі потрібно

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

Всередині обробника клацань jQuery thisоб'єкт посилається на елемент, на який натиснули, тоді як у вашому випадку ви завжди отримуєте href для першого <a>на сторінці. Це, до речі, тому ваш приклад працює, але ваш реальний код не відповідає


12

Ви можете отримати поточне значення href за цим кодом:

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

Щоб отримати значення href за ідентифікатором

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

2

Це працює ... Тестовано в IE8 (не забудьте дозволити запуск JavaScript, якщо ви тестуєте файл з комп’ютера) та chrome.


Chrome може придушити друге спливаюче вікно залежно від ваших налаштувань, ви тестували в хромі? Якщо так, прокоментуйте своє перше сповіщення, і воно спрацює.
Майкл Ла Вой

2

якщо на сторінці є одна, <a>вона працює ,, але , багато <a>, доведеться використовуватиvar href = $(this).attr('href');


1
дає невизначений вихід
VishalParkash

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.