2012-02-26 80 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

相关问题