web-dev-qa-db-fra.com

Existe-t-il un moyen de combiner $ (this) avec: nth-child?

Je suis au milieu d'une itération .each et je voulais appeler le 2ème ou le 3ème enfant pour chacun .. mais je ne peux pas le faire fonctionner.

alert($(this + ' :nth-child(2)').attr('id'));

Ma seule option à laquelle je peux penser est quelque chose de terrible comme ça:

 $(this).children(':first').next().attr('id', 'ddParam' + newCount);
 $(this).children(':first').next().next().attr('id', 'txt' + newCount);
 $(this).children(':first').next().next().next().attr('id'...
31
Todd Vance

Ce dont vous avez besoin est contexte . Avec le contexte, le sélecteur ne recherchera que les éléments qui sont les enfants du contexte (dans ce cas this).

$(':nth-child(2)', this).attr('id');

démo jsFiddle

C'est essentiellement la même chose que:

$(this).find(':nth-child(2)').attr('id');

Si vous n'avez besoin que des enfants directs, pas de tous les descendants, vous devez utiliser .children():

$(this).children(':nth-child(2)').attr('id');
64
kapa