getElementsByTagName('TBODY')在Chrome中失败

问题描述 投票:1回答:1

鉴于使用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元素。可以吗?

谢谢,布莱恩

dom google-chrome
1个回答
4
投票

不要依赖IE中的任何东西-它的行为可能有点不规范。我也建议不要期望您尚未在HTML中声明的标签出现在DOM中。

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

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

[我知道jQuery有一些解决表问题的方法(在IE中)-因此,除非您耐心地自己找出所有黑客,否则我会选择jQuery之类的库并添加这样的表元素:

$('#' + tableID).append(expressionRow);
© www.soinside.com 2019 - 2024. All rights reserved.