2011-06-08 78 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()); 
});