0

我有几个html 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).click为每个 ID 创建函数?

如果可以使用 Jquery 进行上述操作,有人可以帮助我吗?

4

4 回答 4

4

试试这个 :

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

我已更改$('a')$(this)as $('a')will get all the anchors ..$(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>

补充:

使用 event.preventDefault() 从导航到锚标记中的 url

于 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 回答