jQueryを使用してhref値を取得する方法?


163

私はjQueryを使用してhref値を取得しようとしています:

<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 ...、ごめんなさい。問題はキャッシュをクリアすることです
Adi Sembiring 2010年

ここでフィドル:jsfiddle.net/LijoCheeran/t1xs4wo7
LCJ

回答:


351

あなたは必要です

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

jQueryクリックハンドラー内では、thisオブジェクトはクリックされた要素を参照しますが、あなたのケースでは常に<a>ページの最初のhrefを取得しています。ちなみに、これがあなたの例が機能する理由ですが、実際のコードは機能しません


12

次のコードで現在のhref値を取得できます:

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

IDでhref値を取得するには

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

2

動作します... IE8でテスト(コンピューターからファイルをテストしている場合は、JavaScriptの実行を許可することを忘れないでください)とクロム。


Chromeは設定に応じて2番目のポップアップを抑制できます。Chromeでテストしていましたか?その場合は、最初のアラートをコメント化すると機能します。
Michael La Voie

2

ページに1つの機能がある場合<a>、ただし、多くの<a>場合、使用する必要がありますvar href = $(this).attr('href');


1
未定義の出力
VishalParkash

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.