2011-09-09 2 views
0

다음과 같은 jQuery .each loop :jQuery, 각각의 함수 질문

$('.table-data tbody tr td').each(function(index) { 

    $('.table-data tbody tr td' + ':nth-child(' + index + ')').addClass('nth-' + index); 


}); 

문제는 작동하지만 .table-data tbody tr td'의 마지막 요소는 클래스를 가져 오지 않습니다. 왜?

이것은 index이 0 기반이기 때문에입니까? index + 1 회 반복하는 방법?

+0

$ (이) $ 같다 ('테이블. -data tbody tr td '+': nth-child ('+ index +') ') –

+0

@JapanPro - 예, 그 out-for 루프를 작동하는 데는 두 번째가 걸렸습니다. – Iladarsda

답변

2

인덱스를 사용하여 현재 요소를 드릴 다운 할 필요가 없습니다.

$(".table-data tbody td").each(function(index){ 
    $(this).addClass("nth-" + index); 
}); 

이 각 행 내에서 TD 요소를 번호를 다시 지정하려면 다음을 시도하십시오.

$(".table-data tbody tr").each(function(index){ 
    $(this).find("td").each(function(index){ 
     $(this).addClass("nth-" + index); 
    }); 
}); 

OR, 당신이 비트 영리한,이 ... 수 있도록하려면

$(".table-data tbody td").each(function(){ 
    $(this).addClass("n-" + $(this).index()); 
}); 

행동이를 참조하십시오 http://jsbin.com/usaqix

+0

'$ (this) .addClass ("nth-"+ ++ index);'내 예제에서는 완벽 할 것입니다! 매우 영리한! 감사! – Iladarsda

+0

'0 행마다'로 계산하는 방법은 무엇입니까? 이것을'.each'에 두 번 써야합니까? – Iladarsda

+1

네, 그게 제가하는 방법입니다 (편집 참조). – centralscru

0

n 번째 자식은 1에서 시작하므로 0을 기반으로하는 인덱스는 올바르게 작동하지 않습니다. 인덱스 변수를 사용하는 곳에 index + 1을해야하지만, 적절한 횟수만큼 반복 할 것입니다.