Есть ли способ объединить $ (this) с: nth-child? - PullRequest
28 голосов
/ 12 мая 2011

Я нахожусь в середине каждой итерации и хотел вызвать 2-го или 3-го дочернего элемента для каждого ... но не могу заставить его работать.

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

Мой единственный вариант, который я могудумать о чем-то ужасном глупом, как это:

 $(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'...

1 Ответ

63 голосов
/ 12 мая 2011

Что вам нужно, это context . С контекстом селектор будет искать только те элементы, которые являются потомками контекста (в данном случае this).

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

jsFiddle Demo

Это в основном так же, как:

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

Если вам нужны только прямые дети, а не каждый потомок, вы должны использовать .children():

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