2012-05-16 8 views
6

के jQuery सूचकांक मिल रहा मार्कअप"td" तत्व

<table> 
    <tr id="1"> 
     <td colspan="4"> 
      <p class="que"> 
       1. Who are you?</p> 
     </td> 
    </tr> 
    <tr class="ans"> 
     <td> 
      <input type="checkbox" />Student 
     </td> 
     <td> 
      <input type="checkbox" checked="true" />Developer 
     </td> 
     <td> 
      <input type="checkbox" />Other 
     </td> 
     <td> 
      <input type="text" /> 
     </td> 
    </tr> 

</table>​​​ 

मैं विशेष टीडी जो अपने चेकबॉक्स चेक किया है के सूचकांक प्राप्त करना चाहते है यहाँ। उदाहरण के लिए यहां 1 होना चाहिए। लेकिन मुझे प्रत्येक बार 0 मिल रहा है जो पंक्ति की अनुक्रमणिका की तरह दिखता है। यहां उपयोग किया गया jquery कोड है।

var answers = $('table tr.ans'); 
$.each(answers, function() { 
    var answer = $(this).find("input[type='checkbox']:checked").index(); 
    alert(answer);     
    });​ 

और यहाँ fiddle मैं कैसे विशेष टीडी के सूचकांक मिलता है है? धन्यवाद

उत्तर

13

आप के साथ

$("table tr.ans input[type='checkbox']:checked").parent().index(); 

आप बस वापस <td> अप करने के लिए चेकबॉक्स से नेविगेट करने के लिए है, जो बिंदु stright .index बुला पर काम कर देता है की जरूरत है यह कर सकते हैं: कोई

हैं तर्क .index() विधि को पास किया जाता है, वापसी मान एक पूर्णांक है जो के भीतर पहले तत्व की स्थिति को इंगित करता है जो उसके भाई तत्वों के सापेक्ष jQuery ऑब्जेक्ट है।

See it in action

जब से तुम एक पाश के अंदर यह कर रहे हैं, एक और अधिक अच्छी तरह फिट होगा

var answer = $(this).find("input[type='checkbox']:checked").parent().index(); 
+0

आप चयनकर्ताओं को गठबंधन नहीं कर सकते हैं। यह केवल तभी काम करेगा जब एक उत्तर अनुभाग था। –

+0

@ जैक: उत्तर अपडेट किया गया, आपके इनपुट के लिए धन्यवाद। – Jon

2

बदलें इस के लिए लाइन:

var answer = $(this).find("input[type='checkbox']:checked").parent().index(); 

यह आपको td है कि के सूचकांक दे देंगे आपके jquery चयनकर्ता में आपके द्वारा चुने गए इनपुट के माता-पिता।

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