为什么.html工作而不是innerHTML或appendChild

时间:2009-12-04 17:54:04

标签: javascript jquery ajax internet-explorer

我正在尝试向div添加ajax响应(它是带有表格,表单等的HTML代码)。

在FF innerHTML中效果很好,但在IE中它给我一个未知错误。

我尝试了很多东西,但是当我添加jQuery并在div上运行.html方法我想要插入代码时,我才开始工作。

任何人都在关心解释为什么这样做而不是简单的innerHTML?我试着查看.html()代码,但我想我不是JS的优秀,因为我不明白它在做什么。

4 个答案:

答案 0 :(得分:9)

IE 已记录多个pre | table (thead, tbody, tr, tfoot) | div | select。 innerHTML错误

因此像jQuery这样的库通过在IE需要的地方应用变通方法来为你抽象出这些错误。

至于你的具体错误......没有看到代码就很难分辨。

在pre',某些 div上设置.innerHTML,选择(如果确实失败,将无提示失败)但在某些表元素上设置.innerHTML(在某些版本中) IE)实际上会抛出一个错误/异常。

注意:设置div的.innerHTML的问题在条件上非常具体,只发生在IE6& IE7。

答案 1 :(得分:0)

只需使用jQuery并忘记所有可怕的跨浏览器问题 - 你不会回去!

答案 2 :(得分:0)

IE对于从javascript更改<table>s非常挑剔。如果我没有将表格指定到最后一个细节,包括<tbody>标签,我之前遇到了麻烦。

答案 3 :(得分:-1)

我每天都有同样的问题。尝试使用.innerText而不是.innerHTML,这将解决您的问题。答案是在IE和FF中解析Javascript不同。