Dom getElementsByTagName(';TBODY';)在Chrome中失败

Dom getElementsByTagName(';TBODY';)在Chrome中失败,dom,google-chrome,Dom,Google Chrome,给定使用getElementById()找到的表的元素,我需要获取body元素并向其中添加一行。这在Chrome中失败: var tabBody = expressionTable.getElementsByTagName('TBODY')[0]; 但在IE工作 如何在所有浏览器(ie 8、Chrome、FF和Safari)中获得主体 代码如下所示: var expressionTable = document.getElementById(tableID); var tabBody = ex

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

var tabBody = expressionTable.getElementsByTagName('TBODY')[0];
但在IE工作

如何在所有浏览器(ie 8、Chrome、FF和Safari)中获得主体

代码如下所示:

var expressionTable = document.getElementById(tableID);
var tabBody = expressionTable.getElementsByTagName('tbody')[0];
var expressionRow = createExpressionRow(FieldTagsValue, row);
tabBody.appendChild(expressionRow);
tabbody是“未定义的”

我认为这可能是因为表开始时是空的,Chrome没有一个
tbody
元素来表示空表。是吗

谢谢,
Brian

不要依赖任何在IE中工作的东西-它可能表现得有点不标准。 我还建议不要期望您在HTML中未声明的标记出现在DOM中

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

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

不要依赖任何在IE中工作的东西——它可能表现得有点不标准。 我还建议不要期望您在HTML中未声明的标记出现在DOM中

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

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

这就是它,它不存在于铬中。我这样做了,但是如果(tabBody==undefined){var tabBody=document.createElement(“TBODY”);expressionTable.appendChild(tabBody);}@BrianK,我也喜欢你的解决方案,就像我说的,这一切都取决于你有多耐心确保DOM代码在所有浏览器中都能正常工作…:)这就是它,它不存在于铬中。我这样做了,但是如果(tabBody==undefined){var tabBody=document.createElement(“TBODY”);expressionTable.appendChild(tabBody);}@BrianK,我也喜欢你的解决方案,就像我说的,这一切都取决于你有多耐心确保DOM代码在所有浏览器中都能正常工作…:)