Jquery选择器多个href - 动态获取href值

时间:2012-04-18 11:15:23

标签: jquery

我的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创建(#id).click函数?

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

4 个答案:

答案 0 :(得分:4)

试试这个:

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

我已将$('a')更改为$(this),因为$('a')将获得所有锚点。$(this)只能获取当前点击的广告。

Here is a quick working demo ..您将看到最后一行是event.preventDefault() - 它会阻止默认操作(即href之后)发生并允许您的函数执行。 event.preventDefault() docs here

答案 1 :(得分:1)

这样的事情可能是

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

添加:

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

答案 2 :(得分:1)

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

您应该使用preventDefault()否则您将无法执行更多代码(点击您的链接并立即更改页面)

答案 3 :(得分: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
  }
});