2012-03-15 112 views
7

我有一張桌子,我知道如何搜索下一個和前TD,但如何在下一個和前一個TRjQuery在prev中找到相同的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 2012-03-15 18:45:17

+0

不知道,但嘗試'$(本).parent()上一個()' – MilkyWayJoe 2012-03-15 18:45:47

回答

10

我做了一些研究,並與工作的有效的解決方案上來。感謝所有的幫助:

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

如果'rowspan'或'colspan'被用在任何你想要找到的'tr/td'中,那麼這將無法按預期工作。 – 2015-04-17 13:06:56

+0

因爲''.eq()'](https://api.jquery.com/eq/)和['.index()'](https://api.jquery。 com/index /)是基於0的。 – 2017-04-14 10:54:56

2

退房.parent() jQuery的..上td

4

使用parent()方法去tr,然後你可以使用prev()next()相應。

$(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。排,但我如何檢查相同的點擊位置上下?這是真正的問題。 '$(本).parent(' TR ')下一個()(本)的.css。(' 的backgroundColor ');'不工作,即時通訊新的jQuery,還不太瞭解它。我需要其他行上的相同點擊位置。 – Slavak 2012-03-15 19:02:00

+0

'$(this).parent('tr')。next()。(this).css('backgroundColor')'是錯誤的。 – ShankarSangoli 2012-03-15 19:04:23

+0

您是否想在prev和next行中找到相應的td? – ShankarSangoli 2012-03-15 19:06:41

3

喜歡的東西$(this).closest('tr').next('tr').find('td')將讓你的行中的所有<td>小號包含一個<td>你觸發的事件之後。

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

$(this).parent('tr').prev() 
相關問題