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
4
A
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());
// ...
});
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);
});
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
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. –