在“a”标签“onclick”中调用jquery函数

时间:2011-05-31 03:31:59

标签: jquery

这是我的代码:

<a href='P001' class='basic'>Read More</a><br>
<a href='P002' class='basic'>Read More</a><br>
<a href='P003' class='basic'>Read More</a><br>

我的剧本:

$('.basic').click(function(id){
   $.ajax({
       url: 'display_pro.php?id='+$('.basic').attr('href'),
       success: function(data) {alert(data);}
   });
});

当我点击所有链接时,它总是得到'P001'。 问题是什么? 谢谢你的帮助。

4 个答案:

答案 0 :(得分:6)

$('.basic').click(function(e) {
   var link = this; // <-- best practice
   $.ajax({
       url: 'display_pro.php?id=' + link.href, // use link here...
       success: function(data) {alert(data);}
   });
   return false; // <-- needed, prevents page from jumping into another page..
});

答案 1 :(得分:4)

而不是+$('.basic').attr('href')你应该这样做:

$(this).attr('href')

否则,您再次要求将该类作为“基本”的项目集并获取第一个的值。 $(this)(或e.target)确保您获得当前点击的项目。另外,FYI,传递给函数的参数不是id - 它是一个事件对象。

答案 2 :(得分:1)

你需要使用 $(this).attr('href')而不是 $('。basic')。attr('href')

 $('.basic').click(function(id){
      $.ajax({ 
           url: 'display_pro.php?id='+$(this).attr('href'), 
           success: function(data) {
                alert(data);
           } 
      }); 
 });

答案 3 :(得分:0)

首先,请将您的代码放入代码内部``

<a href='P001' class='basic'>Read More</a>
<a href='P002' class='basic'>Read More</a>
<a href='P003' class='basic'>Read More</a>

以下是答案:

$('.basic').click(function (id) {
    $.ajax({
        url: 'display_pro.php?id=' + $(this).attr('href'), //use $(this) so it knows which link you clicked on
        success: function (data) {
            alert(data);
        }
    });
});