2010-04-05 34 views
5

3 sütun içeren bir tablom var. JQuery kullanılarak bu sütunlardan birine tıklandığında her defasında ateşleyen bir olayı bağlamalıyım. Bununla birlikte, tıklanan sütunun dizinini bilmem gerekiyor.Öğelerin dizini, jQuery veya Javascript

yani: Birinci sütun (indeks 0), İkinci sütun (dizin 1), Üçüncü sütun (dizin 2), vb ...

Bunu nasıl yapabilirim?

var firstRow:

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

bir göz atın:

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

'Ne firstrow' oluyor .prevAll() kullanılarak sevdim? '? "" üzerindeki tıklamayı yakalamanız gerekiyor ... jQuery, bunu yapmanın en temiz yaklaşımıdır. –

+0

firstrow, – ozsenegal

cevap

6

bunu yapabilirsiniz .index() kullanarak bu gibi (o dayalı 0 var):

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

numaralı ilk satırın tüm "" öğelerini al, sanmıyorum, bu işlevi (e) {}. Ie: e.target.index – ozsenegal

+0

@ozsenegal ile yapmaya çalışıyorum - işe yarıyor: http://jsfiddle.net/F5ALE/ –

+0

hayır, bu pek de geçerli değil. Awalys'in geri dönüşü "-1". – ozsenegal

2

Olabilir Yerel javascript'lerijQuerys 012 yerine .rowIndex kullanmak için daha iyi bir fikir. jQuery, masa başı (TH) öğelerinin algılanmasında bazı sorunlara neden olabilir.

+0

Bir sütunun dizinini almak için '.rowIndex' işlevini nasıl kullanırsınız? –

+0

"this.cellIndex" olmalıdır. Ancak evet: jQuery'yi bir düğüm listesi araması yapmaktan çok daha basit ve daha verimli. – bobince

+0

evet, tıklama etkinliği işleyicinizin kodu içinde this.rowIndex()/this.cellIndex() 'dir. – jAndy

0

Hep

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

Preview on jsbin