2011-05-27 17 views
5

jQuery के साथ एक छोटा भ्रमित मुद्दा और तालिका में एक कॉलम चुनना/स्टाइल करना।jQuery एनएच-बच्चे चयनकर्ता

निम्नलिखित कोड काम करता है: सिंटैक्स त्रुटि, गैर मान्यता प्राप्त अभिव्यक्ति:

$(function() { 
     $("table").delegate('th.selcol','click', function(e) { 
     var iCol = $(this).parent().children().index(this)+1; 
     $("table tr td:nth-child(10)").each(function() { 
      $(this).toggleClass("colhighlight"); 
     }); 
     }); 
    }); 

लेकिन इस कोड, n वें वाले बच्चे (iCol) को वें वाले बच्चे (10) बदलने में कोई त्रुटि "न आया हुआ अपवाद पैदा करता है: nth-child "

$(function() { 
     $("table").delegate('th.selcol','click', function(e) { 
     var iCol = $(this).parent().children().index(this)+1; 
     $("table tr td:nth-child(iCol)").each(function() { 
      $(this).toggleClass("colhighlight"); 
     }); 
     }); 
    }); 

किसी भी मदद की सराहना की जाएगी।

उत्तर

14
 $("table tr td:nth-child(" + iCol + ")").each(function() { 
     $(this).toggleClass("colhighlight"); 
    }); 

वें वाले बच्चे, एक पूर्णांक, न कोई स्ट्रिंग की उम्मीद है ताकि आप अपनी समस्या को हल करने के लिए संयोजन का उपयोग कर सकते हैं।

+0

समाधान और "क्यों" – chrisk

+1

वें वाले बच्चे के विवरण के लिए, धन्यवाद कुछ कीवर्ड और एक समीकरण भी स्वीकार करता है। JQuery दस्तावेज़ीकरण से नीचे देखें: 'प्रत्येक बच्चे का मिलान करने के लिए 1 से शुरू होता है, स्ट्रिंग भी या अजीब, या समीकरण (उदाहरण: nth-child (even), nth-child (4n)) ' – Owen

3

इस प्रयास करें:

"table tr td:nth-child("+iCol+")" 
2

बदलें यह इस में:

$(function() { 
    $("table").delegate('th.selcol','click', function(e) { 
     var iCol = $(this).parent().children().index(this)+1; 
     $("table tr td:nth-child(" + iCol + ")").each(function() { 
     $(this).toggleClass("colhighlight"); 
     }); 
    }); 
    }); 
0

इस प्रयास करें:

$(function() { 
     $("table").delegate('th.selcol','click', function(e) { 
     var iCol = $(this).parent().children().index(this)+1; 
     $("table tr td:nth-child("+iCol+")").each(function() { 
      $(this).toggleClass("colhighlight"); 
     }); 
     }); 
    }); 

आशा है कि यह काम करता है :)

+0

धन्यवाद, यह काम करता है। – chrisk

+0

@chrisk: बढ़िया, क्या आप एक समाधान के रूप में उत्तरों में से एक का चयन करना चाहते हैं? –

संबंधित मुद्दे