2011-12-14 61 views
2

我想要做的是獲取可能在頁面上的幾個鏈接,並只發送被點擊的鏈接到PHP腳本中進行解析。將超鏈接傳遞到單個JQuery函數中

<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; 
    }); 

回答

2

更改您的代碼來獲得(在這種情況下this)活動對象:

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

謝謝rcdmk。這工作 – Muzz 2011-12-14 15:17:29

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; 
    }); 
+0

謝謝Sudhir。我顯然在這裏忽略了`encodeURIComponent`,但即使每個鏈接都不同,我仍然有相同的超鏈接發送問題。我如何獲得用戶點擊發送的正確對應鏈接? – Muzz 2011-12-14 15:09:20

0

使用$(這)在你的處理程序會給你一個點擊鏈接的參考。

$(".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; 
    }); 
+0

謝謝jrummell。我在哪裏可以使用encodeURIComponent,以便傳遞整個鏈接? – Muzz 2011-12-14 15:11:53