2008/10/20

table操作中IE与FF的差异

最近在html表格操作中遇见了一些代码
var newRow = t.insertRow(insertpoint);
newRow.id = newRow_id;
newRow.innerHTML = html;
这段代码在FF下正常运行,在IE下却报出莫名错误。通过google了解了一些别人的处理方法,学习并总结如下:
在IE下,以下特性被严格遵循:
table tbody tr 的innerHTML 为只读
td tr tbody 的outerHTML 为只读

通过以下JS的运行我们便可以看出端倪:
《table id="table"》
《tbody id="tbody"》
《tr id="tr"》
《td id="td"》内容 《/td》
《/tr》
《/tbody》
《/table》
《script type="text/javascript"》
var $ = function () {
return document.getElementById(arguments[0]);
};
window.onload = function () {
try {
$("table").innerHTML = " 《tbody》 《tr》 《td》变更table 《\/td》 《\/tr》 《\/tbody》";
} catch (exp) {
try {
$("tbody").innerHTML = " 《tr》 《td》变更tbody 《\/td》 《\/tr》";
} catch (exp) {
try {
$("tr").innerHTML = " 《td》变更tr 《\/td》";
} catch (exp) {
$("td").innerHTML = "变更td";
}
}
}
};
《/script》
基于博客编辑器的限制,运行测试时候请将'《'替换为'<','》'替换为'>'。
运行后我们便可发现实际执行生效的只有“变更td”。当然我们也有变通方法,就是通过insertCell来进行新的tr的拼接。

没有评论: