2012-04-18 24 views
0

私は、HTMLのhrefの数を以下に示してきたように:jQueryのセレクタの複数のhref - 動的hrefの値を取得

<a id="link1" href="http://www.google.com">USA </a>  
<a id="link2" href="http://www.google.com.au">AU </a> 
<a id="link2" href="http://www.google.com.nz">NZ </a> 

私はjqueryの以下のようにしました:

<script> 
    $("a").click(function() { 
     var link = $('a').attr('href'); 
     alert(link); 
     dosomethingforlink(link); 

    }); 
</script> 

基本的には、ワンクリック機能付き私は<a>タグ(これはクリックされている)のhref値を得て、各リンクに対して何か違うことをしたいと思います。

または、それぞれのIDに対して(#id).click関数を作成する必要がありますか?

Jqueryを使用して上記のことが可能であれば誰かを助けてくれますか?

答えて

4

これを試してみてください:

$("a").click(function() { 
    var link = $(this).attr('href'); 
    alert(link); 
    dosomethingforlink(link); 
}); 

私は$('a')として$(this)$('a')を変更したが、アンカーのすべてを取得します。.. $(this)は現在、1をクリックしてしまいます。

Here is a quick working demo ..最後の行がevent.preventDefault()であることがわかります。デフォルト動作(つまりhrefに続く)が実行されず、関数が実行できるようになります。このようなevent.preventDefault() docs here

+0

は@ManseUKありがとうございます。 –

+0

こんにちは@ManseUK、dosomethingforlink(リンク)関数は、ActiveXObjectを使用します。 IEは、「安全でないかもしれないメッセージ..」ダイアログを表示します。 Noをクリックすると、既存のが実行されます。使用すると「いいえ」をクリックしても何もできません。 –

1
$("a").click(function (evt) { 
     evt.preventDefault(); 
     var link = $(this).attr('href'); 
     alert(link); 
     dosomethingforlink(link); 
}); 

あなたがそうでなければ、あなたをpreventDefault()を使用する必要がありますさらなるコードを実行することはできません(あなたのリンクはクリックされ、ページはすぐに変更されます)

0

IDは一意である必要があります。したがって、複数の要素で同じIDを使用しないでください。このような

何かが多分:

$("a[id^='link']").on('click', function (e){ 
    e.preventDefault(); 
    switch ($(this).attr('href')) { 
    case 'http://www.google.com' : 
     //do something 
    break; 
    case 'http://www.google.com.au' : 
     //do something 
    break; 
    default: 
     //do something else 

....etc 
    } 
}); 
関連する問題