2016-08-31 3 views
1

나는 다음과 같은 루프가 있습니다중첩 루프

for (i = 0; i < Count; i++) { 

      $('td').eq(i).prepend($('th').eq(???).text() + '<br />'); 
} 

난 항상 인덱스 i에서 td 요소를 원할 것입니다,하지만 난 단지 인덱스 0, 1에있는 th 요소를 앞에 추가 할을 또는 2.

예 :
앞에 추가 0 번째 홍보 2
TD 2 번째 1 명
앞에 추가를 TD 1 번째 0
를 앞에 추가하는 TD 0 번째 epend는 3
1 번째 앞에 추가 5

방법 I 내부 내 당량의 루프를 수행 할 수 TD 2 번째 4
앞에 추가 TD를 위해 TD 행()? eq()가이를 수행하는 올바른 방법입니까? 감사.

+0

예, '$ ('th '). eq (i)'는 원하는 것을해야합니다. 너 해봤 니? – Barmar

+0

예, 'i'는 인덱스 2보다 높아지므로 작동하지 않습니다. – noclist

+0

아, 그 부분을 보지 못했습니다. 그것을 줄이기 위해'% 3'을 사용하십시오. – Barmar

답변

2

는 간단하게 모든 :nth-child()의 도움으로 인덱스를 사용 td 해당 얻고 컨텐츠를 앞에 추가 each() 방법을 사용하여 th 반복. 루프에 대한 자신과 함께


// iterate over th 
$('th').each(function(i){ 
    // get td elements in same column using index 
    $('td:nth-child(' + (i + 1) + ')').prepend($(this).text() + '<br/>'); 
}); 

는 계수 및 업데이트를 복용하여 인덱스를 생성합니다. (첫 번째 방법에서와 같은 논리) 루프와

// cache the th and td 
var $th = $('th'), 
     $td=$('td'), 
     // store counts of th 
     c = $th.length; 

// iterate over th 
for (i = 0; i < Count; i++) { 
    // update wuth corresponding th text 
    // where `i % c` refers to the index 
    $td.eq(i).prepend($th.eq(i % c).text() + '<br />'); 
} 

또는 훨씬 간단는 방법.

var $th = $('th'), 
     c = $th.length; 

for (i = 1; i <= c; i++) { 
    $('td:nth-child(' + i + ')').prepend($th.eq(i).text() + '<br />'); 
} 
+0

굉장합니다, 고마워요. 첫 번째 방법은 훌륭하게 작동합니다. – noclist

+0

@noclist : 기꺼이 도와주세요. :) –