很抱歉成为JavaScript菜鸟,但任何人都可以解释为什么建议不要使用.innerHTML
。当我们以.innerHTML
的形式提供更快速,更轻松的内容时,为什么我们不应该使用它?
答案 0 :(得分:12)
innerHTML
是一把大锤。它将爆炸所选DOM元素的内容,并用当时分配的任何内容替换它们。这会导致许多HTML转义和验证问题。
更重要的是,对于绑定了大量事件的页面,使用innerHTML
附加另一个元素将重新生成DOM元素,这意味着事件绑定可能会丢失。
当从DOM中删除元素时,旧版IE中的内存泄漏也存在一些问题。
尽管如此,我并没有告诉你,你不应该使用innerHTML
。当我使用$(selector).html()
时,我一直在jQuery中使用它。有时大锤是工作的正确工具,当事件被正确委派时,重新加载内容无关紧要。