在我目前的应用程序中,我需要将一个表的内容复制到另一个表中...通过设置innerHTML,它在FF中完美运行......但不是在IE8中... 这是我用来复制FF的代码:
getID("tableA").innerHTML = getID("tableB").innerHTML;
// getID is a custom function i wrote to provide a shorter version of document.getElementById();
TableA为空(仅存在tbody标记)。 TableB看起来像这样:
table
tbody
tr
td "Content" /td
td "Content" /td
/tr
/tbody
/table
我已经尝试过使用nodeValue ..或者appendData ...或outerHTML ..但是没有真正有效的...
答案 0 :(得分:7)
Internet Explorer不允许您使用innerHTML编辑表格内部 - 它是全部或全部。
由于您尝试使用innerHTML来复制信息,因此完整副本应该是安全的(即没有任何可能重复的id属性),在这种情况下我会这样做:
var source = document.getElementById('tableA');
var destination = document.getElementById('tableB');
var copy = source.cloneNode(true);
copy.setAttribute('id', 'tableB');
destination.parentNode.replaceChild(copy, destination);
答案 1 :(得分:0)
我很惊讶地发现IE 8没有得到修复.Geez,谈论拖你的脚。这是Internet Explorer的innerHTML实现中的故意遗漏 - 您无法在表中设置innerHTML。该功能的创建者提供了an explanation and a workaround。基本上,您可以获取实际的tbody节点并使用replaceChild()将原始表的tbody转换为该节点。