2011-06-24 28 views
11

संभव डुप्लिकेट:
Table row and column number in jQueryजावास्क्रिप्ट: हो रही टीडी सूचकांक

मैं एक मेज इसलिए की तरह है, तो:

<table> 
    <thead> 
    <tr><th>1</th> <th>2</th> <th>3</th></tr> 
    </thead> 

    <tbody> 
    <tr><td>data</td> <td>checkbox</td> <td>data</td></tr> 
    </tbody> 
</table> 

उपयोगकर्ता चेकबॉक्स क्लिक करता है, मैं चाहता हूँ पंक्ति और कॉलम सूचकांक प्राप्त करने के लिए। मैं इस कोड का उपयोग करके पंक्ति सूचकांक प्राप्त कर सकते हैं:

var row = $(this).parent().parent(); 
var rowIndex = $(row[0].rowIndex); 

लेकिन मैं स्तंभ अनुक्रमणिका को समझ नहीं सकता ...

मैं इस कोशिश की, लेकिन यह काम नहीं किया:

var colIndex = $(row.children().index(this).parent()); 

मैंने यहां समान प्रश्नों के परिणामों को देखा और ऐसा लगता है कि मुझे प्रत्येक या मानचित्र के साथ सभी टीडीएस के माध्यम से फिर से शुरू करना है, क्या मैं कुछ सरल हूं जिसका उपयोग मैं कर सकता हूं? धन्यवाद।

+0

ठीक है, एक समस्या यह है कि आपको टैग के अंदर टैग घोंसला करने की आवश्यकता है। मुझे नहीं लगता कि उन्हें सीधे टैग में रखना कानूनी है। – JohnFx

+0

वे मुझे प्रश्न उदाहरण में जोड़ने के लिए भूल गए हैं ... यह शुक्रवार है। : डी मैंने इसे संपादित किया। – PruitIgoe

+0

क्या मैं पूछ सकता हूं कि आप पंक्ति/कॉलम इंडेक्स के साथ क्या कर रहे हैं? हमारे पास एक विकल्प के लिए एक विचार हो सकता है जहां आपको इसकी आवश्यकता नहीं है। – JohnFx

उत्तर

25

पहले <td> के सूचकांक जाओ, क्योंकि यह <tr> के रास्ते पर है:

var cell = $(this).closest('td'); 
var cellIndex = cell[0].cellIndex 

var row = cell.closest('tr'); 
var rowIndex = row[0].rowIndex; 

या एक multiple-selector[docs] के साथ parents()[docs] पद्धति का उपयोग करके, आप एक बार में दोनों के लिए चयन कर सकता है:

var cellAndRow = $(this).parents('td,tr'); 

var cellIndex = cellAndRow[0].cellIndex 
var rowIndex = cellAndRow[1].rowIndex; 
+1

धन्यवाद, मैं जो कर रहा हूं उससे कहीं अधिक सुरुचिपूर्ण है । – PruitIgoe

+1

@Pruitlgoe: आपका स्वागत है। – user113716

+0

यह ठीक काम है। इस उपयोगी टिप के लिए धन्यवाद। –