2015-01-16 30 views
6

我已经看到了一个项目,多次说我的工作是设置元素的innerHTML值之前被清理之前,像这样:在设置innerHtml之前,应该“清理”一个元素吗?

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

我找不到任何好的理由这样做,只是团队中的每个人都遵循这个“实践”。根据我的理解,任何人都可以重新定义innerHtml属性来执行自定义操作,但除了这个原因,还有其他我缺少的东西吗?

谢谢!

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

+1

谢谢@freefaller,这个例子更清晰(更不用说执行= P) – Heraldo

回答

13

听起来就像是项目的看到了一些cargo-cult programming在一些点。

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

+1

肯定这种货物狂热的事情发生了(从来不知道这是一个术语)。我几乎可以肯定没有很好的理由去做这些事情,现在我100%确定。谢谢! ;) – Heraldo

相关问题