2009-08-15 7 views
6

このコードを使用して現在の行を取得できます。 「this」は、行内の表のセル内のリンクです。jquery - 現在の行の場所からクラス名に基づいて次の行に移動しますか?

$currentTR = $(this).parents('tr'); 

これらの次の2行は、同じことをすることができます。現在の行の後にtrを入れます。

$nextTR = $(this).parents('tr').next(); 
$nextTR = $(this).parents('tr').next('tr'); 

I出力$nextTR.html()は私が

期待私は、クラス名による場合を除いて正しい行を取得するために行く必要がどのように多くの行を知っていないと、このようにそれをやってすることはないん表示された場合私のために働く。

$nextTR = $(this).parents('tr').next('.concept'); 
$nextTR = $(this).parents('tr').next('tr .concept'); 

私が得るすべてはdocs.Jquery link text上の例

nullであるが、この

$("p").next(".selected").css("background", "yellow"); 

を使用しています私はここで何をしないのですか?

+0

.next(する)兄弟をフィルタリング。兄弟がセレクタに合っている場合、それは保持されます。それ以外の場合は除外されます。 これは、trの次の兄弟クラスがコンセプトクラスの場合はそれが返され、そうでない場合はnullが返されることを意味します。 – Zed

+0

私はあなたが意味することを参照してください、私はまだ次の行を取得しようとしています! – Breadtruck

答えて

11

nextAll打撃を与える...、認めますよ。

+5

クラップス、私は新しい 'index'関数を使って素晴らしい解決策を考え出しましたが、' $(this).closest( 'tr')。nextAll( 'tr.concept')。勝者。 :) – hobbs

+0

これは理にかなっています。nextAllは現在の位置からページの一番下に移動し、DOMの一番上に戻り、開始位置に戻ります。これは返される要素の数です。 – Breadtruck

+0

@Breadtruck - no。あなたの例では、nextAllは "現在の"行の後のすべての行を返します。 –

0

特定のクラスの次のものを取得したいですか?

.next()を実行して、おそらくクラスをチェックすることができますか?

私はあなたの質問について少し困惑しているあなたがあなた自身の答えを提供しているように見えるので、私は

1

私はあなたのHTML + JavaScriptのat jsbinを再作成しようとしましたし、私は問題を再現することができます

siblings()戻り、すべての4行、と私は2つの行のがclass="concept"を持っていることを見ることができますが、何もnext('.concept')返しません。

兄弟()のサブセットであるnext()はありませんか?


コメントいただきありがとうございます。私は次のものではなく、シルベスグが必要です。

+0

nextは次の要素のみを返します。 nextへの呼び出しに送るセレクタが次の要素と一致しない場合、結果セットは空になります。 –

0

私たちは、あなたが以下のようなHTMLに何かがあるとしましょう:

HTML:

<tr class="current_tr"> <!-- This is your current tr --> 
... 
..... 
... 
</tr> 

<tr class="nextRowClass"> <!-- You need to find this tr with the class--> 
... 
..... 
... 
</tr> 

JS:

var current_row = $('tr.current_tr'); 
//You can get next row with the class as below 
var next_row_with_class = $(current_row).next("tr.nextRowClass"); 
関連する問題