innerHTML||$(selector).html()在IE和Chrome中的另一种区别

首先看一下这篇文章:

innerHTML在ie,firefox,chrome的区别

http://buzheng.org/web-front/difference-of-implements-of-innerhtml-in-ie-and-firefox/ 

 说的是在有未闭合的标签的情况下不同浏览器处理方式的差别。

最近项目要从ie6上迁移到chrome上,原来好好的一段代码现在不执行了:

innerHTML||$(selector).html()在IE和Chrome中的另一种区别 View Code
1  if  ($('#divStudy').html()=='') {
2         $.post(url, {...})} 

document.getElementbyId().innerHTML结果一致 

  div的内容是这样的:

1  <!-- 居住地信息修改 -->
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认为回车后会产生九个空格字符(也许是其他数字)

你可能感兴趣的:(innerHTML)