0

以下に示すように、私はhtmlhrefの数を持っています:

<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).clickまたは、IDごとに関数を作成する必要がありますか?

上記がJqueryを使用して可能である場合、誰かが私を助けてくれますか?

4

4 に答える 4

4

これを試して :

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

すべてのアンカーを取得するように変更し$('a')ました..現在クリックされているアンカーのみを取得します。$(this)$('a')$(this)

ここに簡単な動作デモがあります..最後の行が表示されますevent.preventDefault()-デフォルトのアクション(つまり、hrefに従う)が発生するのを防ぎ、関数を実行できるようにします。event.preventDefault()ドキュメントはこちら

于 2012-04-18T11:16:30.853 に答える
1

このようなものかもしれません

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

追加:

アンカータグ内の URL へのナビゲーションから event.preventDefault() を使用します

于 2012-04-18T11:16:36.817 に答える
1
$("a").click(function (evt) {
      evt.preventDefault();
      var link = $(this).attr('href');
      alert(link);
      dosomethingforlink(link);
});

そうpreventDefault()しないと、それ以上のコードを実行できなくなります (リンクがクリックされ、ページがすぐに変更されます)。

于 2012-04-18T11:25:16.823 に答える
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
  }
});
于 2012-04-18T11:28:16.113 に答える