2010-06-09 19 views
4

J'ai une ligne dans une table html qui contient seulement des images. (Cela arrive aussi à la première rangée). Ces images sont câblées pour un événement de clic aussi. En essayant de gérer l'événement click, je peux trouver son parent (c'est-à-dire l'élément <td>). Mais je veux connaître son ordinal relatif dans la ligne du tableau (<tr>).jquery: ordinal de td à l'intérieur tr

Répondre

5

Vous pouvez trouver le ordinale avec la fonction index():

$('td img').click(function() { 
    var ordinal = $(this).closest('tr').children().index($(this).parent()); 
    // ... 
}); 
+0

Je sais que c'est vieux, mais je viens d'essayer cela et ordinale est toujours -1:/ $ (« td ») .click (function() { var ordinal = $ (this) .closest ('tr'). enfants(). index ($ (this) .parent()); alerte (ordinal); }); – Nieszka

+1

Vous devriez faire: '$ (" td "). Click (function() {var ordinal = $ (this) .closest ('tr'). Enfants() .index (this); alert (ordinale);}) ; 'L'original avait' $ (this) .parent() 'parce que' this' faisait référence à l'élément img à l'intérieur du td; mais dans votre cas, ceci est le td lui-même. –

1

Le nombre d'éléments avant l'élément courant sera son index dans les DOM par rapport au parent. Vous pouvez utiliser .prevAll() et obtenir la longueur de l'ensemble résultant:

$('td').click(function(){ 
    alert($(this).prevAll().length); 
}); 

Demo available on jsfiddle