首先看一下这篇文章:
innerHTML在ie,firefox,chrome的区别
http://buzheng.org/web-front/difference-of-implements-of-innerhtml-in-ie-and-firefox/
说的是在有未闭合的标签的情况下不同浏览器处理方式的差别。
最近项目要从ie6上迁移到chrome上,原来好好的一段代码现在不执行了:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1
if
($('#divStudy').html()=='') {
2 $.post(url, {...})}
2 $.post(url, {...})}
document.getElementbyId().innerHTML结果一致
div的内容是这样的:
1
<!--
居住地信息修改
-->
2 < div id ="divStay" class ="tabStyle" >
2 < div id ="divStay" class ="tabStyle" >
3 </div>
执行alert的结果为
alert($(fillDiv).html()
==
''
);
--
false 提示框内为空白
alert($(fillDiv).html().length);--9
检查了divStay内没有任何空白,我就奇怪了,这个9是怎么出来的?经过一个小时的排查未果后,我把鼠标光标移到</div>然后点击回退,9下之后变成了:
<
div
id
="divStay"
class
="tabStyle"
>
</
div
>
靠!难道是这个原因?果然再次alert后length为0.
总结:IE认为回车造成的标签开始和结束分隔内的内容为空,Chrome认为回车后会产生九个空格字符(也许是其他数字)