2012-12-12 102 views
-1

我有一個圖像列表,我希望用戶能夠點擊圖像,並提交數據與jQuery。因此,給定幾張圖片後,用戶可以點擊其中的任何一張圖片,並自動將其提交到jQuery的登錄頁面,其中包含該用戶所選圖片的ID。這是我在嘗試使用列表作爲圖像的代碼..Jquery提交圖像

<ul> 
<li><img id='1' src='/img1.png'></li> 
<li><img id='2' src='/img2.png'></li> 
<li><img id='3' src='/img3.png'></li> 
</ul> 

$(function() 
{ 
    $('#img').click(function() 
    { 
     var datastring = //either 1,2,3 corresponding to image id 
     $.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: dataString, 
     success: function() { 
      alert('Image Submitted') 
     }  
    }); 
} 
+1

請問一個問題 – paislee

+0

你會得到作爲其中的一部分,你的情況這將是: VAR ID = $(本).attr(「身份證」); – SaschaM78

+2

'#'不應該在那裏開始。 –

回答

0

試試這個:

$('img').click(function() { 
    var datastring = $(this).prop('id'); 
    $.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: dataString, 
     success: function() { 
      alert('Image Submitted') 
     } 
    }); 
});​ 

附:.attr.prop和之間的差的最簡單的方法是下面的例子:

<input blah="hello" /> 
  1. $('input').attr('blah'):如預期返回'hello'。這裏沒有驚喜。
  2. $('input').prop('blah'):返回undefined - 因爲它試圖做[HTMLInputElement].blah - 並且該DOM對象上不存在這樣的屬性。它只存在於作爲該元素屬性的範圍內,即[HTMLInputElement].getAttribute('blah')

因此,屬性在DOM中;一個屬性位於解析到DOM中的HTML中。所以使用道具!

0

完整版本:

$(document).ready(function() { 
    $('img').click(function() 
    { 
    var datastring = $(this).attr('id'); // or simply $(this).id; 
    $.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    success: function() { 
     alert('Image Submitted') 
    }  
}); 
}); 
0

快速瀏覽一下建議改變這些行:

$('#img').click(function() 
{ 
    var datastring = //either 1,2,3 corresponding to image id 

這樣:

$('img').click(function() 
{ 
    var datastring = $(this).attr('id'); 

因此,我們已經失去了#因爲你不是在找一個id。我們已經添加了檢索ID。

對於這部分看到http://jsfiddle.net/tAH7F/