2010-04-05 18 views
5

मेरे पास एक तालिका है जिसमें 3 कॉलम हैं। मुझे एक ऐसी घटना को बांधने की ज़रूरत है जो किसी भी कॉलम को jQuery का उपयोग करके क्लिक किया जाता है।तत्वों का सूचकांक, jQuery या जावास्क्रिप्ट

हालांकि, मुझे कॉलम की अनुक्रमणिका को क्लिक करने की आवश्यकता है।

अर्थात: पहला स्तंभ (सूचकांक 0), दूसरा स्तंभ (सूचकांक 1), तीसरा स्तंभ (सूचकांक 2), और इतने पर ...

कैसे मुझे लगता है कि कर सकते हैं?

वर firstRow:

var firstRow = $("tr:first > th", "table[id*=Grid]"); 

एक नज़र डालें:

firstrow.click(function(e){ 
//var id = e.target.index; 
var id = $(e).parent().children().index(this);//returns -1 
}) 
+0

क्या 'firstrow' का उपयोग कर पसंद आया? ''? आपको '' पर क्लिक को कैप्चर करने की आवश्यकता है ... 'jQuery के साथ एक प्रतिनिधि समारोह ऐसा करने का सबसे साफ तरीका है। –

+0

फर्स्ट्रो, पहले पंक्ति – ozsenegal

उत्तर

6

आप क्या कर सकते हैं इस .index() उपयोग करते हुए, इस तरह (यह आधारित 0 है):

$("td").click(function() { 
    var i = $(this).parent().children().index(this); 
    alert(i); 
}); 
+0

के सभी तत्वों को "" ले लो, मुझे ऐसा नहीं लगता है, क्योंकि मैं इसे फ़ंक्शन (ई) {} के साथ करने की कोशिश कर रहा हूं। यानी: e.target.index – ozsenegal

+0

@ozsenegal - यह काम करता है, इसे आजमाएं:) http://jsfiddle.net/F5ALE/ –

+0

नहीं, यह बिल्कुल नहीं है। क्या वे "-1" वापस आते हैं। – ozsenegal

2

यह हो सकता है jQuery के बजाय मूल जावास्क्रिप्ट .rowIndex का उपयोग करने का एक बेहतर विचार। jQuery सिर (TH) तत्वों का पता लगाने में कुछ परेशानी हो सकती है।

+0

कॉलम की अनुक्रमणिका प्राप्त करने के लिए आप '.rowIndex' का उपयोग कैसे करेंगे? –

+0

'this.cellIndex' होना चाहिए। लेकिन हाँ: jQuery खोज को नोड सूची बनाने से कहीं अधिक सरल और अधिक कुशल। – bobince

+0

हां, आपके क्लिक इवेंट हैंडलर कोड में यह है .rowIndex()/this.cellIndex() – jAndy

0

मैं हमेशा .prevAll()

$('table').click(function(e) { 
    var $targ = $(e.target); 
    if ($targ.is('th')) { 
    var position = $targ.prevAll().length; 
    alert(position); 
    } 
}); 

Preview on jsbin

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