【问题标题】:Why does .html work and not innerHTML or appendChild为什么 .html 工作而不是 innerHTML 或 appendChild
【发布时间】:2010-12-23 08:16:47
【问题描述】:

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

在 FF innerHTML 中完美运行,但在 IE 中它给了我一个未知错误。

我尝试了很多东西,但只有在我添加 jQuery 并在我想要插入代码的 div 上运行 .html 方法时才能正常工作。

有人愿意解释为什么这有效,而不是简单的innerHTML?我尝试查看 .html() 代码,但我想我不是 JS 方面的专家,因为我不明白它在做什么。

【问题讨论】:

    标签: javascript jquery ajax internet-explorer


    【解决方案1】:

    IE 记录了几个pre | table (thead, tbody, tr, tfoot) | div | select.innerHTML 错误

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

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

    在 pre's、某些 div's、select's 上设置 .innerHTML(如果确实失败,将静默失败)但在某些表格元素上设置 .innerHTML(在某些版本的 IE 中)会实际上抛出一个错误/异常。

    注意:设置 div 的 .innerHTML 的问题在条件上非常具体,仅在 IE6 和 IE7 中出现。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 如果内容确实是 HTML,则设置 .innerText 将不起作用。 @AntonioCS 已经在使用 jQuery,因此解决了这个问题 - 他只是不确定 IE 失败的确切原因。
          猜你喜欢
          • 2020-08-30
          • 2013-05-14
          • 2014-03-11
          • 2012-10-31
          • 1970-01-01
          • 2020-04-17
          • 2010-09-30
          • 2011-09-12
          相关资源
          最近更新 更多