将超链接传递到单个JQuery函数中

时间:2011-12-14 14:58:54

标签: javascript jquery

我想做的是获取可能在页面上的多个链接,并仅将点击的链接发送到要解析的PHP脚本。

<a href="?something=2&id=100&somethingelse=55" class="link">My First Link</a>
<a href="?something=3&id=400&somethingelse=65" class="link">My Second Link</a>

我想要的是获取链接并将其传递给PHP。使用此代码,无论我点击哪个链接,我都只能获得第一个链接。

我宁愿有一个函数来发送这些链接,而不是我在站点中的每个超链接的函数。我只是试图压缩或巩固基本上做同样事情所需的功能。

这是我到目前为止所做的:

  $(".link").click(function() {
  var v1 = $("a.link").attr("href");

//    var v1 = $("a.ajax-link")[2].href;
    var dataString = 'v1='+ v1;

    $.ajax({
      type: "POST",
      url: "/",
      data: dataString,
      dataType: 'json',
      success: function(data) {
        if(data.success == 1){
          alert(data.success);
        }
        else{
          alert(data.success);
        }
      }
    });
    return false;
  });

3 个答案:

答案 0 :(得分:2)

更改代码以获取事件目标(在这种情况下为this):

var v1 = $(this).attr("href"); 

答案 1 :(得分:0)

$(".link").click(function() {
  var v1 = $("a.link").attr("href");

//    var v1 = $("a.ajax-link")[2].href;
    var dataString = 'v1='+ encodeURIComponent(v1);

    $.ajax({
      type: "POST",
      url: "your_php_page_to_handle_post",
      data: dataString,
      success: function(data) {
        if(data.success == 1){
          alert(data.success);
        }
        else{
          alert(data.success);
        }
      }
    });
    return false;
  });

答案 2 :(得分:0)

在处理程序中使用$(this)将为​​您提供对所单击链接的引用。

$(".link").click(function() {
    var href = $(this).attr("href");
    var dataString = 'v1='+ encodeURIComponent(href);

    $.ajax({
      type: "POST",
      url: "your_php_page_to_handle_post",
      data: dataString,
      success: function(data) {
        if(data.success == 1){
          alert(data.success);
        }
        else{
          alert(data.success);
        }
      }
    });
    return false;
  });