35

I'm in the middle of an .each iteration and wanted to call out the 2nd or 3rd child for the each..but cant make it work.

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

My only option that I can think of is something terrible goofy like this:

 $(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'...
kapa
  • 77,694
  • 21
  • 158
  • 175
Todd Vance
  • 4,627
  • 7
  • 46
  • 66

1 Answers1

76

What you need is context. With context, the selector will only look for elements that are the children of the context (in this case this).

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

jsFiddle Demo

This is basically the same as:

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

If you only need the direct children, not every descendant, you should use .children():

$(this).children(':nth-child(2)').attr('id');
kapa
  • 77,694
  • 21
  • 158
  • 175