2012-02-26 88 views
-2

當我點擊img時我想獲得前一個td的值.. 我嘗試此代碼但它不起作用,警報可以' T顯示我的(用戶ID)值使用jQuery獲取元素的前一個兄弟的值^^

$(document).ready(function() 
    {  
     var $Edit = $("tbody tr.odd td.hvr img"); 
     $Edit.click(function() { 
     var userid = $(this).prev('td').val(); 
     alert(userid); 
     } 
     ) 
    }) 

html代碼:

<tbody> 
<tr class="odd"> 
    <td>some</td> 
    <td class="hvr"><img src="EditBtn.png"/></td> 

</tr> 

</tbody> 
+3

閱讀常見問題,請在此之後,糾正你的標題和你的問題。 – markus 2012-02-26 14:10:26

+0

請提供一個有意義的問題來描述您遇到的問題。 – FelipeAls 2012-02-26 14:10:45

+1

@FelipeAlsacreations,雖然我同意這個問題寫得不好,而且最初的標題也沒有幫助,但我不相信OP沒有把他的問題弄清楚。 – 2012-02-26 14:15:59

回答

4

有兩個問題與你的嘗試,第一個是,tdimg的前一個兄弟元素,我t是img元素的父元素(td)元素的前一個兄弟元素。

的第二個問題是,td沒有value屬性,因此val()是錯誤的做法,而是有text(),所以請嘗試使用:

$(document).ready(function() 
    {  
     var $Edit = $("tbody tr.odd td.hvr img"); 
     $Edit.click(function() { 
     var userid = $(this).parent().prev('td').text(); 
     alert(userid); 
     } 
     ) 
    }) 

JS Fiddle demo

參考文獻:

+0

+1供參考。當然手冊頁不能很難找到... – Bojangles 2012-02-26 14:17:53

+0

當然不是與jQuery(你會想),因爲它總是:'http://api.jquery.com/ + jquery-method-name + /'。另一方面,當你第一次出發時,並不一定很容易認識到。 =/ – 2012-02-26 14:19:29

+0

tnks一個戰利品大衛^^ 我試了一下,它運作良好 – user1233875 2012-02-26 14:21:48

0
  1. 在你的代碼this<img>標籤,而不是td。使用closest('td')可獲得最接近圖像的<td>
  2. <td>標籤沒有價值,所以val()將無法​​正常工作。使用text()進去文本:

嘗試:

$(document).ready(function() 
{  
    var $Edit = $("tbody tr.odd td.hvr img"); 
    $Edit.click(function() { 
     var userid = $(this).closest('td').prev('td').text(); 
     alert(userid); 
     }) 
}) 
+0

是的,這是它。它可以工作dudde tnks ^^ – user1233875 2012-02-26 14:22:10