给定使用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元素。可能是吗?
谢谢, 布赖恩
答案 0 :(得分:3)
不依赖于在IE中工作的任何东西 - 它可能表现得略微不标准。 我还建议不要期望你的HTML中没有声明标签存在于DOM中。
如果您确实依赖它存在于DOM中,我会尝试使用显式tbody标记:
<table>
<tbody></tbody>
</table>
我知道jQuery有一些处理表的解决方法(在IE中) - 所以,除非你耐心地找出你自己的所有黑客,否则我会选择像jQuery这样的库并添加这样的表元素:
$('#' + tableID).append(expressionRow);