2010-03-19 44 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