附近TD
问题描述:
内的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>
答
我想这就是你要找的,当然这个解决方案相对于你的HTML标记,如果你改变你的标记可能无法正常工作。
$('.PrintReport').click(function() {
alert($(this).parent().prev().prev().find('.Price').html());
});
这是另一种解决办法,但你必须给每一个TargetSpan
和Test
的ID与数字后缀像TargetSpan1
,TargetSpan2
,test1
,test2
$('.PrintReport').click(function() {
var id = this.id.replace('test', '');
alert($(this).closest('tr').find('TargetSpan' + id).html());
});
答
你为什么不只是由ID选择它?
$('#TargetSpan').html()
答
.parent()
将返回母TD;尝试parent().parent()
或.closest("tr")
答
如果继续使用id
约定你例如,这将始终工作,无论td
命令。
$('.PrintReport').click(function (e) {
alert($('#TargetSpan' + $(this).attr('id').replace(/\D/g,'')).html());
});
我想我没有很好地解释这个问题,请再回顾我的问题,因为我有例如10个TR。 – Shahin 2011-06-08 06:03:45
好的,试试这样: $(this).parent()。prev()。prev()。find(“span”)。html() – kufi 2011-06-08 06:05:04