2011-07-07 56 views
1

我試圖訪問集中<tr>標籤的<tr>標籤,但它顯示了所有這些標籤。有誰能解決這個問題嗎選擇全部<tr>標籤小於集中索引<tr>標籤

下面是我的HTML和JavaScript代碼:

<table> 
    <tr><td><input type="text"></td></tr> 
    <tr><td><input type="text"></td></tr> 
    <tr><td><input type="text"></td></tr> 
    <tr><td><input type="text"></td></tr> 
</table> 

下面是我寫的劇本:

$('TABLE TR TD').find('input').focus(function() 
{ 
    var ParID=$(this).parents('TR').index(); 
    $(this).parents('TR').siblings('TR').prevAll("TR").find('input').each(function() 
    { 
     alert($(this).parents('TR').index()) 
    }); 
}); 

回答

2

這應做到:

$('table input').focus(function() { 
    var $previousRows = $(this).closest('tr').prevAll('tr'); 
}); 

你的問題是這樣的部分:.siblings('TR').prevAll("TR")

由於.siblings('TR')返回所有行(也是最後一個),.prevAll("TR")也將返回所有行。只是刪除.siblings('TR')可能會正常工作。

請注意,.closest()[docs]更適合這種情況。