当用户点击ID为'test'的输入时,我希望在id为'TargetSpan'的范围内获取值
我尝试了这段代码,但它返回null。
$('.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>
答案 0 :(得分:1)
.parent()
将返回父td;试试parent().parent()
或.closest("tr")
答案 1 :(得分:1)
我想这就是你要找的东西,当然这个解决方案与你的HTML标记有关,如果你改变你的标记可能不起作用。
$('.PrintReport').click(function() {
alert($(this).parent().prev().prev().find('.Price').html());
});
这是另一种解决方案,但您必须为每个TargetSpan
和Test
ID添加一个数字后缀,例如TargetSpan1
,TargetSpan2
,test1
,{{ 1}}
test2
答案 2 :(得分:0)
为什么不按ID选择它?
$('#TargetSpan').html()
答案 3 :(得分:0)
如果您继续在示例中使用id
约定,则无论td
订单如何,这都将始终有效。
$('.PrintReport').click(function (e) {
alert($('#TargetSpan' + $(this).attr('id').replace(/\D/g,'')).html());
});