2009-09-04 10 views
2

を解析するために、親テーブルを選択するために、私はテーブルを解析しJS機能を持っている:jQueryの:どのように

// id contains a message id, activeRow is "this" from onClick on tr 
function doSomething (id, activeRow) { 
    // AJAX calling using id as parameter 
    $("#searchResultTable > tbody > tr").each(function(index) { 
     $(this).removeClass("bold"); 
    }); 
} 

これは完全に罰金(other post @アリエルのおかげで)動作しますが、私は別のがあるべきことを考えていました

var table = $(activeRow).parent(); 
$("tbody > tr", table).each(function(index) { 
    // .. do something 
}); 
// The above clearly doesn't work, but should document what I'm looking for. 

このようにすると、同じテーブルIDを使用できますが、機能は別々に機能します。

多くの、多くの感謝!

答えて

1

閉じる、あなたがテーブルの上にクラスを使用したい

$("table.className tbody tr").each(function() { 
    // .. do something 
}); 
5

jQueryのparents()方法は、親テーブルにスナップを取得します:

$(activeRow).parents('table')[0]; 
3

は何について:

$(activeRow).siblings().andSelf().removeClass("bold") 

activeRow<tr>が入り、その兄弟を0にするもありますので、すべてのクラスから"bold"クラスを削除してください。

$(activeRow).closest('table')[0]; 

ここから:

3

次のようにclosestを使用する方が良いかもしれhttp://api.jquery.com/closest/

最も近い:それは供給セレクタの一致が見つかるまでDOMツリーを移動します。

parents:DOMツリーをドキュメントのルート要素に移動し、各祖先要素を一時コレクションに追加します。セレクタに基づいてそのコレクションをフィルタリングします。

は、このシナリオでは、それはよく parentsclosestとしてあなたが実際に動作するようにしようとしている1を取得し、DOMツリー内に複数のを、そこにある一番上のテーブルを取得している可能性があります。

+0

私はこの回答が遅かったことを知っていますが、私はこの回答をいくつかのGoogle検索で見つけましたので、貢献する価値があると考えました。 –