سؤال

أنا في منتصف تكرار .each وأردت استدعاء الطفل الثاني أو الثالث لكل منهما.. ولكن لا أستطيع أن أجعله يعمل.

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'...
هل كانت مفيدة؟

المحلول

ما تحتاجه هو سياق.مع السياق، سيبحث المحدد فقط عن العناصر التي هي أبناء السياق (في هذه الحالة this).

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

عرض jsFiddle

هذا هو في الأساس نفس:

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

إذا كنت تحتاج فقط إلى الأبناء المباشرين، وليس كل سليل، فيجب عليك استخدامه .children():

$(this).children(':nth-child(2)').attr('id');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top