28 votes

jQuery : trouver la prochaine rangée de tableau

J'ai un tableau, contenant des lignes, contenant des cellules - et certaines d'entre elles contiennent une image comme suit :

<img id="FormView1_btnSave_row1%1%new" style="border-width: 0px; cursor: pointer;"
src="grafik/ok_16x16.gif" onclick="cleverStuff(this)"/>

Dans la fonction cleverStuff, je voudrais opérer sur la ligne qui suit la ligne dans laquelle le bouton a été cliqué - ce bouton spécial est contenu dans la dernière ligne visible seulement, il y a un tas de lignes cachées en dessous et je veux rendre la première ligne cachée visible - mais je n'arrive pas à atteindre la ligne suivante. J'ai cru comprendre que toutes les combinaisons de parent() y next() pourrait être utilisé pour passer de l'img au td, au tr et enfin au tr suivant. J'ai donc essayé de le vérifier :

$(ctrl).attr('id') renvoie correctement l'id de l'image :)

$(ctrl).parent().attr('id') retourne NULL.

Qu'est-ce que je rate ici ?

89voto

tvanfosson Points 268301

Cela devrait vous donner le tr englobant de l'élément, même s'il n'est pas le parent direct de l'élément, puis la ligne suivante de cette ligne. Si vous utilisez parent sur un élément qui est à l'intérieur d'un td, cela vous donnera la colonne, pas la ligne. Si vous fournissez un filtre à la méthode parent(), le parent sera simplement éliminé par filtrage, à moins qu'il ne corresponde au filtre, ce qui ne donne généralement aucun élément correspondant. Le plus proche est probablement ce que vous voulez, mais parents('tr') peut être nécessaire si vous avez des tableaux imbriqués et que vous voulez la ligne extérieure au lieu de la ligne intérieure.

$(this).closest('tr').next('tr')

32voto

Greg Points 132247

Vous ne nous montrez pas assez de HTML, mais cela devrait fonctionner :

$(ctrl).parent('tr').next();

5voto

airportyh Points 7912

Peut-être que l'élément parent n'avait pas son id défini ? Pour passer à la ligne suivante à partir de l'image, je crois que vous pouvez faire ce qui suit :

$(this).parent('tr').next('tr')

1voto

J'espère que vous pourrez utiliser

jQuery(this).parents('tr');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X