getElementsByTagName('TBODY')在Chrome中失败

时间:2010-12-10 16:13:15

标签: dom google-chrome

给定使用getElementById找到的表的元素,我需要获取body元素并向其添加一行。这在Chrome中失败了:

var tabBody = expressionTable.getElementsByTagName('TBODY')[0];

但可以在IE中使用。

如何在所有浏览器(即8,Chrome,FF和Safari)中获取正文?

代码如下所示: var expressionTable = document.getElementById(tableID); var tabBody = expressionTable.getElementsByTagName('tbody')[0]; var expressionRow = createExpressionRow(FieldTagsValue,row); tabBody.appendChild(expressionRow);

tabody是'undefined'

我认为这可能是因为该表开始为空,而Chrome没有空表的tbody元素。可能是吗?

谢谢, 布赖恩

1 个答案:

答案 0 :(得分:3)

不依赖于在IE中工作的任何东西 - 它可能表现得略微不标准。 我还建议不要期望你的HTML中没有声明标签存在于DOM中。

如果您确实依赖它存在于DOM中,我会尝试使用显式tbody标记:

<table>
  <tbody></tbody>
</table>

我知道jQuery有一些处理表的解决方法(在IE中) - 所以,除非你耐心地找出你自己的所有黑客,否则我会选择像jQuery这样的库并添加这样的表元素:

$('#' + tableID).append(expressionRow);