2010-03-19 59 views
1

我有一個表,看起來像這樣:表中添加使用Javascript

<table id='t'> 
    <thead> 
     .... 
    </thead> 
    <tbody id='t_tbody'> 
    </tbody> 
</table> 
  • THEAD充滿內容

  • TBODY是空

我想要使用Javascript將此(例如)添加到t_tbody:

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

我該怎麼做?我需要一個將以上內容添加到t_tbody的函數。簡單地使用

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

注意在Firefox正常工作,但不是在IE瀏覽器。

另外請注意,我需要使用原始的Javascript(即沒有框架)爲這個項目,因爲我正在完成一個項目,已經基本上完成使用原始的Javascript。

+0

,其不同的基於瀏覽器的 – 2010-03-19 19:03:02

回答

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 2010-03-19 19:07:25

+0

我編輯過html,所以table和tbody有不同的id。你能更新你的JavaScript?我認爲這會幫助我更好地理解。謝謝!我也刪除了你的評論,因爲它沒有任何意義。 – Cam 2010-03-19 19:08:06

+0

@incrediman:完成:) – Gregoire 2010-03-19 19:09:09

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中不起作用,奇怪。最終發生的是名稱,點數和信息是相互打印的,沒有空格 - 完全忽略了它們在表格中的事實。像這樣:「NamePointsInformation」。我沒有結束在IE瀏覽器測試...但無論如何,謝謝! – Cam 2010-03-19 20:20:40