jQuery选择邻域TD内的值

时间:2011-06-08 05:55:11

标签: jquery jquery-selectors

当用户点击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>

4 个答案:

答案 0 :(得分:1)

.parent()将返回父td;试试parent().parent().closest("tr")

答案 1 :(得分:1)

我想这就是你要找的东西,当然这个解决方案与你的HTML标记有关,如果你改变你的标记可能不起作用。

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

这是另一种解决方案,但您必须为每个TargetSpanTest ID添加一个数字后缀,例如TargetSpan1TargetSpan2test1,{{ 1}}

test2

答案 2 :(得分:0)

为什么不按ID选择它?

$('#TargetSpan').html()

答案 3 :(得分:0)

如果您继续在示例中使用id约定,则无论td订单如何,这都将始终有效。

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