鉴于使用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
元素。可以吗?
谢谢,布莱恩
不要依赖IE中的任何东西-它的行为可能有点不规范。我也建议不要期望您尚未在HTML中声明的标签出现在DOM中。
如果您确实依赖DOM中存在的标记,我将尝试使用显式tbody标记:
<table>
<tbody></tbody>
</table>
[我知道jQuery有一些解决表问题的方法(在IE中)-因此,除非您耐心地自己找出所有黑客,否则我会选择jQuery之类的库并添加这样的表元素:
$('#' + tableID).append(expressionRow);