2012-03-15 17 views
7

मेरे पास एक टेबल है और मुझे पता है कि अगली और पिछली TD कैसे खोज करें, लेकिन अगले और पिछले TR पर इसे कैसे करें?jQuery में समान टीडी ढूंढें। और अगली पंक्ति

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

यकीन नहीं है, लेकिन कोशिश '$ (this) .parent() पिछले()' – MilkyWayJoe

उत्तर

10

मैं कुछ शोध कर दिया और एक काम कर समाधान है कि काम करता है के साथ आया था। धन्यवाद मदद के लिए सभी:।

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

निष्पक्ष, यह उम्मीद के अनुसार काम नहीं करेगा अगर किसी भी 'tr/td' में' रोशन 'या' colspan' का उपयोग किया जा रहा है जो आप ढूंढ रहे हैं। –

+0

वह '-1' गलत है क्योंकि दोनों [' .eq() '] (https://api.jquery.com/eq/) और [' .index() '] (https: //api.jquery। कॉम/इंडेक्स /) 0-आधारित हैं। –

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

हाँ, मैं कैसे अगले और पिछला खोजने के लिए पता है। पंक्ति, लेकिन मैं एक ही क्लिक स्थिति को ऊपर और नीचे कैसे देखूं? यह असली समस्या है। '$ (This) .parent (' tr ') अगले() (यह) .css।। (' पृष्ठभूमि रंग ');' काम नहीं कर रहा, मैं jQuery के लिए नया हूँ, अभी तक यह बहुत अच्छी तरह से समझ में नहीं आता है। मुझे अन्य पंक्तियों पर एक ही क्लिक स्थिति की आवश्यकता है। – Slavak

+0

'$ (यह)। माता-पिता ('tr')। अगला()। (यह) .css ('backgroundcolor') 'गलत है। – ShankarSangoli

+0

क्या आप पिछली और अगली पंक्तियों में संबंधित टीडी खोजना चाहते हैं? – ShankarSangoli

3

कुछ $(this).closest('tr').next('tr').find('td') तरह <td> आपके ईवेंट पर भी गोली चलाई जिसमें एक के बाद आप सभी <td> पंक्ति के भीतर मिल जाएगा।

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

और

$(this).parent('tr').prev() 
संबंधित मुद्दे