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); });