web-dev-qa-db-ja.com

$(this)を:nth-​​childと組み合わせる方法はありますか?

私は.eachイテレーションの途中で、each ..の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'...
31
Todd Vance

必要なのは context です。コンテキストでは、セレクターはコンテキストの子である要素のみを検索します(この場合はthis)。

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

jsFiddleデモ

これは基本的に次と同じです:

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

すべての子孫ではなく直接の子だけが必要な場合は、.children()を使用する必要があります。

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