web-dev-qa-db-ja.com

jQuery:次のテーブル行を見つける

行とコンタリングセルを含むテーブルがあり、それらの一部には次のようなimgが含まれています。

_<img id="FormView1_btnSave_row1%1%new" style="border-width: 0px; cursor: pointer;"
src="grafik/ok_16x16.gif" onclick="cleverStuff(this)"/>
_

関数cleverStuffで、ボタンがクリックされた行に続く行で操作したい-この特別なボタンは最後に表示される行にのみ含まれ、下に隠れた行がたくさんあり、最初の行を作成したい隠された行は表示されますが、次の行に移動できません。私の理解では、parent()next()のすべての組み合わせを使用して、imgからtd、tr、そして次のtrに到達することができました。だから私はこれを確認しようとしました:

$(ctrl).attr('id')はimgのIDを正しく返します:)

$(ctrl).parent().attr('id')はNULLを返します。

ここで何が欠けていますか?

23
MBaas

これにより、要素の直接の親でなくても、その行の次の行である場合でも、要素を囲むtrが得られます。 td内にある要素で親を使用すると、行ではなく列が表示されます。 parent()メソッドにフィルターを提供すると、フィルターと一致する場合を除き、単純に親が除外されます。通常、一致する要素はありません。おそらく最も近いものが必要ですが、ネストしたテーブルがあり、内側の行ではなく外側の行が必要な場合は、parents( 'tr')が必要になる場合があります。

$(this).closest('tr').next('tr')
76
tvanfosson

あなたは本当に十分なHTMLを私たちに見せていませんが、これはうまくいくはずです:

$(ctrl).parent('tr').next();
32
Greg

親要素にidが設定されていなかったのでしょうか?画像から次の行に行くには、あなたができると信じています:

$(this).parent('tr').next('tr')
5
airportyh

使えるといいな

jQuery(this).parents('tr'); 
1