web-dev-qa-db-fra.com

jquery, trouve le prochain élément par classe

Comment puis-je trouver le prochain élément par classe.

j'ai essayé avec $(obj).next('.class'); mais cela retourne des classes uniquement dans $(obj) parent. Je dois prendre le prochain élément n'importe où dans le code par nom de classe. Parce que mon code ressemble à

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

Est-ce possible?

91
Alex

Dans ce cas, vous devez aller au <tr>, puis utilisez .next() , comme ça:

$(obj).closest('tr').next().find('.class');

Ou s'il peut y avoir des lignes entre les deux sans le .class À l'intérieur, vous pouvez utiliser .nextAll() , comme ceci:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
127
Nick Craver

Pour trouver l'élément suivant avec la même classe:

$(".class").eq( $(".class").index( $(element) ) + 1 )
15
plavozont

Vous ne pouvez pas utiliser next () dans ce scénario, si vous regardez le documentation, il est indiqué:
Next () Obtenez le immédiatement le frère de chaque élément dans l'ensemble des éléments correspondants. Si un sélecteur est fourni, il récupère le frère suivant qui correspond au sélecteur.

Donc si la deuxième DIV était dans le même TD alors vous pourriez coder:


// Won't work in your case
$(obj).next().filter('.class');


$(obj).parents('table').find('.class')
13
Morteza Manavi