2011-07-07 1 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]がより適していることに注意してください。

関連する問題