2011-06-08 44 views
0

内的jQuery选择值我想里面的值跨度ID为“TargetSpan”当用户点击输入与“测试”
的ID我想这个代码,但它返回null。
附近TD

$('.PrintReport').click(function (e) { 
      alert($(this).parent().find('td:eq(2)').html()); 

     }); 

<tr> 
<td> 
</td> 
<td> 
</td> 
<td> 
<span id="TargetSpan" class="Price">0</span> 
</td> 
<td> 
</td> 
<td> 
<input id=test type="image" class="PrintReport" > 
</td> 
</tr> 
<tr> 
<td> 
</td> 
<td> 
</td> 
<td> 
<span id="TargetSpan2" class="Price">0</span> 
</td> 
<td> 
</td> 
<td> 
<input id=test2 type="image" class="PrintReport" > 
</td> 
</tr> 

回答

1

我想这就是你要找的,当然这个解决方案相对于你的HTML标记,如果你改变你的标记可能无法正常工作。

$('.PrintReport').click(function() { 
    alert($(this).parent().prev().prev().find('.Price').html()); 
}); 

这是另一种解决办法,但你必须给每一个TargetSpanTest的ID与数字后缀像TargetSpan1TargetSpan2test1test2

$('.PrintReport').click(function() { 
    var id = this.id.replace('test', ''); 
    alert($(this).closest('tr').find('TargetSpan' + id).html()); 
}); 
0

你为什么不只是由ID选择它?

$('#TargetSpan').html() 
+0

我想我没有很好地解释这个问题,请再回顾我的问题,因为我有例如10个TR。 – Shahin 2011-06-08 06:03:45

+0

好的,试试这样: $(this).parent()。prev()。prev()。find(“span”)。html() – kufi 2011-06-08 06:05:04

1

.parent()将返回母TD;尝试parent().parent().closest("tr")

0

如果继续使用id约定你例如,这将始终工作,无论td命令。

$('.PrintReport').click(function (e) { 
    alert($('#TargetSpan' + $(this).attr('id').replace(/\D/g,'')).html()); 
});