2012-03-15 8 views
7

私はテーブルを持っていて、次に検索する方法を知っています。TDですが、次の前にそれを行う方法はTRですか?jQueryは前のtdと同じです。次の行

012 
345 <- example, I clicked on 4, it checks 3 and 5, but how to check on 0,1,2 and 6,7,8? 
678 
$(document).ready(function() { 
    $("td").click(function() { 

     var x = $(this).next().css('backgroundColor'); 
     var y = $(this).prev().css('backgroundColor'); 

     if (x == 'rgb(255, 0, 0)' || y == 'rgb(255, 0, 0)') { 
      return; 
     } else { 
      $(this).css('backgroundColor', 'red'); 
     } 
    }); 
}); 
+0

あなたのHTMLがわから – DG3

+0

切り捨てではなく、 '$(この).parentを()してみてくださいPREV()' – MilkyWayJoe

答えて

10

私はいくつかの研究を行い、働く作業溶液を思い付きました。おかげで助けのためのすべて:。

$(this).parent().next().find('td').eq($(this).index()-1).css('backgroundColor'); 
+0

あなたが探しているものの前に来る 'tr/td'で' rowspan'や 'colspan'が使われていると、これは期待どおりに動作しません。 –

+0

['.eq()'](https://api.jquery.com/eq/)と['.index()'](https://api.jquery。 com/index /)は0ベースです。 –

2

チェックアウトjqueryの中.parent() ..

4

使用trに行くと、あなたはそれに応じてprev()またはnext()を使用することができますtdparent()方法。

$(document).ready(function() { 
    $("td").click(function() { 

     var $tr = $(this).parent();//this will give the tr 
     $tr.prev();//previous tr 
     $tr.next();//next tr 

     //To get the corresponding td's in the next and prev rows 
     var tdIndex = $(this).index(); 

     $tr.prev().find("td:not(:eq(" + tdIndex + "))"); 
     $tr.next().find("td:not(:eq(" + tdIndex + "))"); 

    }); 
}); 
+0

はい、私は次のとPREVを見つける方法を知っています。どのように私は同じクリック位置を上下にチェックするのですか?それが本当の問題です。 '$(this).parent(' tr ')。next()。(this).css(' backgroundColor ');'動作していない、jQueryに新しい、まだそれほど理解していない。私は他の行で同じクリック位置が必要です。 – Slavak

+0

'$(this).parent( 'tr')。next()。(this).css( 'backgroundColor')'が間違っています。 – ShankarSangoli

+0

前と次の行に対応するtdを検索しますか? – ShankarSangoli

3

<td>あなたのイベントを含むものが上の解雇後$(this).closest('tr').next('tr').find('td')のようなものは、行内のあなたにすべての<td>秒を取得します。

2
$(this).parent('tr').next() 

$(this).parent('tr').prev() 
関連する問題