2011-12-05 5 views
2

궁금한 점은 for 루프를 변수 안에서 실행할 수 있습니까? 배열로 생성 된 <th> s 첫 번째 행을 채우고 싶습니다. var table = $('<table border="1"><tr></tr>'); 같이 정의 된 변수가 있습니다. 내가 사용하지만, 때문에 프로그램의 다른 부분의 변수 선언의변수에서 for 루프를 실행하십시오

for (var i=0; i< headers.length; i++) { 
    $("<th>"+headers[i]+"</th>").appendTo(table); 
} 

외부로 for 루프를 실행하는 데 노력했다

var table = $('<table border="1"><tr>'for (var i=0; i< headers.length; i++){$("<th>"+headers[i]+"</th>")}'</tr>'); 

.appendTo은 다음과 같습니다 이론적으로, 그것과 같을 것 실행 가능한 솔루션이 아닙니다. 이

var row = $('table tr:first'); 
    for (var i=0; i < headers.length; i++) 
     $("<th />").html(headers[i]).appendTo(row); 

편집

나는 DOM에 요소를 부착 몰랐어요에 대한

+1

당신은 문자열을 구축 배열을 반복 한 다음 테이블을 만들려면 해당 문자열을 사용할 수 없습니다? – vitorbal

답변

2

당신은 정말는 변수 선언의 외부에서 그것을 할 수없는 경우 (내가 보지 않는 이유를 할 수 없었다), 어떻게 이런 일에 대해 :

var headersString = ''; 

for (var i=0; i < headers.length; i++) { 
    headersString += '<th>'+ headers[i] +'</th>'; 
} 

('<table border="1"><tr>' + headersString + '</tr></table>'); 

여기 예를 들어 작업 : http://jsfiddle.net/hEKy5/

+0

완벽하게 작동합니다. 정말 고마워요. –

+0

위대한! 문제 없음 :) 도와 드리겠습니다. – vitorbal

1

별로,하지만 방법은 페이지 리플 로우됩니다. 이 코드는 그 문제를 미연에 방지합니다

var row = $('table tr:first').detach(); 
for (var i = 0; i < headers.length; i++) 
    $("<th />").html(headers[i]).appendTo(row); 
$("table").prepend(row); 
+0

불행히도이 솔루션은 다음과 같이 테이블 하단에 ''을 넣습니다. http://jsfiddle.net/Skooljester/UnBGw/1/ –

+0

추가 대신에 추가 기능을 사용 하시겠습니까? –

+0

@AndrewPeacock - 이것은 나를 위해 작동합니다. http://jsfiddle.net/W44ep/ –

관련 문제