JS对table操作的兼容性

今天写代码的时候发现一些问题,总结下:

1.在tbody中插入html的时候FF chrome都没问题,在IE下报错(查资料得到:IE中table tbody tr等的InnerHTML都为只读,td的可以读写。所以报错)

2.在向一个节点插入HTML代码时,由于IE不支持insertAdjacentHTML方法。所以做了如下判断

if(element.insertAdjacentHTML){
                
            element.insertAdjacentHTML('beforeEnd',html);
            
        }else{
            
            var div = document.createElement('div');
            div.innerHTML = html;
            element.appendChild(div.childNodes[0]);
        
            div = null;

}

后来发现IE8也支持 insertAdjacentHTML方法,所以在用innerHTML往tbody中插入代码时,保存显示在了element.insertAdjacentHTML('beforeEnd',html);这一行。

3.在Chrome中操作表格。动态生成表格(由于IE 中 tbody不可以写入),使用了tbody.insertRow()和tbody.insertCell()方法。但是得到的结果和IE FF中是相反的。

IE和FF中是按顺序排列,插入表格。Chrome中是反向的。行和列都是反的。

所以,不得已,使用了appendChild方法。

原文地址:https://www.cnblogs.com/iu90/p/3240853.html