为什么建议避免使用.innerHTML?

时间:2013-08-29 04:23:24

标签: javascript

很抱歉成为JavaScript菜鸟,但任何人都可以解释为什么建议不要使用.innerHTML。当我们以.innerHTML的形式提供更快速,更轻松的内容时,为什么我们不应该使用它?

1 个答案:

答案 0 :(得分:12)

innerHTML是一把大锤。它将爆炸所选DOM元素的内容,并用当时分配的任何内容替换它们。这会导致许多HTML转义和验证问题。

更重要的是,对于绑定了大量事件的页面,使用innerHTML附加另一个元素将重新生成DOM元素,这意味着事件绑定可能会丢失。

当从DOM中删除元素时,旧版IE中的内存泄漏也存在一些问题。


尽管如此,我并没有告诉你,你不应该使用innerHTML。当我使用$(selector).html()时,我一直在jQuery中使用它。有时大锤是工作的正确工具,当事件被正确委派时,重新加载内容无关紧要。