2010-03-19 6 views
1

있는 테이블에 추가나는이 보이는 테이블이 자바 스크립트

<table id='t'> 
    <thead> 
     .... 
    </thead> 
    <tbody id='t_tbody'> 
    </tbody> 
</table> 
  • THEAD는 내용으로 가득를

  • TBODY 내가 원하는

비어 자바 스크립트를 사용하여 (예를 들어) t_tbody에 추가 :

<tr> 
    <td>Name</td> 
    <td>Points</td> 
    <td>Information</td> 
</tr> 

어떻게하면됩니까? 위의 내용을 t_tbody에 추가하는 함수가 필요합니다. 단순히

document.getElementById('t_tbody').innerHtml+="<tr>...</tr>" 

를 사용

참고 파이어 폭스에서 잘 작동하지만 IE한다.

원시 자바 스크립트를 사용하여 이미 완료된 프로젝트를 마무리하고 있으므로이 프로젝트에 원시 자바 스크립트 (즉, 프레임 워크 없음)를 사용해야합니다.

+0

, 그 다른는 –

답변

4
var tr = document.createElement("tr"); 

var td = document.createElement("td"); 
td.innerHTML = "Name"; 
tr.appendChild(td); 

var td2 = document.createElement("td"); 
td2.innerHTML = "Points"; 
tr.appendChild(td2); 

var td3 = document.createElement("td"); 
td3.innerHTML = "Information"; 
tr.appendChild(td3); 

document.getElementById('t_tbody').appendChild(tr); 
+0

죄송 그렇지 않은 추가 기능 만에 appendChild 하나였다 브라우저를 기반으로. 마지막 줄은 tbody가 id가 없기 때문이다 – Gregoire

+0

테이블과 tbody가 다른 id를 갖도록 html을 편집했다. 자바 스크립트를 업데이트 할 수 있습니까? 나는 그것이 내가 더 잘 이해하는 데 도움이 될 것이라고 생각한다. 감사! 나는 또한 당신의 의견을 실제로 이해하지 못했기 때문에 삭제했습니다. – Cam

+0

@incrediman : done :) – Gregoire

2

그레고리에 의해 대답은 참으로이 일의 가장 "올바른"방법입니다,하지만 IE는 당신이 DOM에 아직 요소의 innerHTML을 편집하는 경우 불평하지 않는 것 참고 않습니다. 따라서 솔루션이 단축 될 수있다 : 내가 기억하는 것과

var tr = document.createElement('tr'); 

tr.innerHTML = "<td>Name</td><td>Points</td><td>Information</td>"; 

document.getElementById('t_tbody').appendChild(tr);  
+0

FF에서 이상하게 작동하지 않습니다. hapenning을 끝내는 것은 이름, 점 및 정보가 공백없이 서로에 대해 인쇄된다는 것입니다. 즉, 테이블에있는 사실을 완전히 무시합니다. 이렇게 : "NamePointsInformation". 나는 IE에서 테스트를 끝내지 못했습니다 ... 어쨌든 덕분에! – Cam

관련 문제