日期:2014-05-17  浏览次数:20760 次

innerHTML在IE下的特殊:不支持table作为容器

最近开发时遇到个怪事,就是前台我用ajax访问后台 ,拿到数据后,拼好HTML代码,用的是

赋值到一个table中,这个在FireFox和Chrome里是正常的,提交测试后。。发现在IE下有问题,别管IE几都有问题,拼接好的HTML片段就是加不上去。用 alert输出下tblhtml试试,也正常,百度一下发现:

页面是UI人员设计的,所以打算找UI换成 <div> , <span>结构。后来突然想起了JQuery也有给元素赋HTML的函数,就是

试了一下,果然好使,所以就将所有的innerHTML改成了JQuery的html()函数。

看来IE果然与众不同啊,,遇到这个问题,如果又不想使用JQuery的话,那只能绕开Table咯。

另外 还有一个问题就是,给table赋值上html代码后,浏览器渲染的时候会自动加上<tbody>标签,如果这个时候在获取<table>的innerHTML的话,就会带着<tbody>,这些代码如果和其他的<tr>拼接的话,其他的会显示不出来的哦。。。经验而已,一句话,就是对<table><tr>实行innerHTML时,谨慎小心。。。


谷梦科技之家