在设置innerHtml之前应该是一个“清理过”的元素吗?

时间:2015-01-16 12:45:58

标签: javascript html

我在一个项目中已经多次看到我在设置元素的innerHtml之前,之前清理过的值,如下所示:

var foo = document.getElementById('foo')
foo.innerHTML = '';
foo.innerHTML = '<span>Bar</span>'

我无法找到任何理由这样做,只是团队中的每个人都遵循这个&#34;练习&#34;。根据我的理解,任何人都可以重新定义innerHtml属性来进行自定义操作,但除此之外,还有其他任何我不知道的吗?

谢谢!

编辑:更新示例代码以避免倾斜(感谢@freefaller)

1 个答案:

答案 0 :(得分:13)

听起来这个项目在某些时候看到了一些cargo-cult programming

不仅没有理由设置元素的.innerHTML属性两次,但它实际上是在不必要地减慢页面的速度。对DOM进行的每次修改都会导致浏览器停止并更新文档树,这意味着每次都会浪费周期.innerHTML被设置为空字符串。