jQuery.html()和innerHTML在IE8中失效

代码如下:

jQuery.html()和innerHTML在IE8中失效

在IE8上运行起来,下拉框中任何选项都没有,加打印发现<select>块中没有任何数据

正常现象应该是有两个选项才对

而在IE11上又能正常显示,看来是在IE8中 opt_html 中的内容没有填充进去

$("MDVR_MAIN_[CH]_BRM").html(opt_html);

换成原生写法 

document.getElementById('MDVR_MAIN_[CH]_BRM').innerHTML = opt_html;
现象跟之前一样,但是加打印发现<select>块中有数据,如下:

CBR</option><option value="1">VBR</option>

???什么鬼???

一番百度,google后发现,原来IE8 及以下(IE7、IE6)版本对 innerHTML 设置的内容会做检查,只有当填充的内容为一个完整的html元素时才能加载成功

根据这个思路,代码修改如下:

jQuery.html()和innerHTML在IE8中失效

正常运行!


-----------------------------------------------

看到有网友说 append() 接口也有这种情况,还没求证,以后遇到这种=类情况都要注意点咯

话说 IE 的坑真的很多,前端开发最痛苦的事就是要兼容IE浏览器吧,哈哈,幸好,我是后端攻城狮 jQuery.html()和innerHTML在IE8中失效