+ -
当前位置:首页 → 问答吧 → .html() 方法在IE8 和 FF 中返回不同的结果, 有方法解决吗?

.html() 方法在IE8 和 FF 中返回不同的结果, 有方法解决吗?

时间:2009-10-18

来源:互联网

下面是一段简单的html代码, 一个list

<ul id="sf">
  <li> 0000000000 </li>
  <li> 1111111111 </li>
  <li> 2222222222 </li>
  <li> 3333333333 </li>
  <li> 4444444444 </li>
  <li> 5555555555 </li>
  <li> 6666666666 </li>
  <li> 7777777777 </li>
  <li> 8888888888 </li>
  <li> 9999999999 </li>
</ul>

$('#sf').html()  在FF中, 返回:
  <li> 0000000000 </li>
  <li> 1111111111 </li>
  <li> 2222222222 </li>
  <li> 3333333333 </li>
  <li> 4444444444 </li>
  <li> 5555555555 </li>
  <li> 6666666666 </li>
  <li> 7777777777 </li>
  <li> 8888888888 </li>
  <li> 9999999999 </li>

而在IE8中, 返回:
<LI>0000000000
<LI>1111111111
<LI>2222222222
<LI>3333333333
<LI>4444444444
<LI>5555555555
<LI>6666666666
<LI>7777777777
<LI>8888888888
<LI>9999999999 </LI>

请问这可能是什么原因造成的?  有什么办法解决吗?  

万分感谢!

作者: orpington   发布时间: 2009-10-18

我知道了, innerHTML也有同样的问题.

这是<UL>定义本身的问题, html的DOM并不要求<li>和</li>配对, 各个浏览器对innerHTML的解释也不同, 所以, 上面的结果不是IE的错误.

要想避免, 对于list, 不能简单地用.html()方法. 可以根据需要取出所有的<li><./li>转换后再使用.

作者: orpington   发布时间: 2009-10-18