Obtenir le prochain élément avec la même classe

J’utilise un événement de clic pour un élément avec une certaine classe. À l’intérieur de la fonction événement de clic, je dois obtenir le prochain élément de la page avec la même classe. J’ai essayé:

$('.class').click(function() { var $next = $(this).next('.class') }); 

Et:

 $('.class').click(function() { var $next = $(this).parent().parent().parent().next('.class') }); 

La classe .class est une div à l’intérieur de td dans une table, c’est pourquoi trois fois parent ().

Mon HTML est quelque chose comme ceci (la classe. Est .drag):

 
.. (koreňový adresár)
aaa
subaaa

Tu peux essayer:

 $(".drag").click(function() { var draggables = $(this).parents("table").find(".drag"); var $next = draggables.filter(":gt(" + draggables.index(this) + ")").first(); }); 

Que dis-tu de ça? Cependant, vous devriez vérifier les erreurs qui ne se ressemblent pas, car je ne les ai pas testées.

 $('.class').click(function () { var index = $('.class').index($(this)); var $next = $('.class').slice(index+1,index+2); ... }); 

Vous pouvez utiliser une combinaison de slice() et each() :

 var elements = $('.class'); elements.each(function(index, element) { $(this).click(function() { var $next = elements.slice(index+1, index+2); }); }); 

DEMO

Alternativement (bien que peut-être moins efficace) serait d’obtenir une référence à l’ancêtre commun et d’utiliser slice() et index() :

 $('.class').click(function() { var elements = $(this).closest('table').find('.class'); var index = elements.index(this); $next = elements.slice(index + 1, index + 2); });