【发布时间】:2011-06-30 18:36:19
【问题描述】:
我有一个由 JS 创建的 DOM 元素填充的 div,
我希望在 JS 函数重复时清除 div,但是我听说使用 document.getElementById('elName').innerHTML = ""; 不是一个好主意,
清除 div 内容的有效替代方法是什么?
【问题讨论】:
-
您从哪里听到的?有链接吗?
-
通过字符串操作 DOM 不是一个坏主意吗?
-
@Myles:让浏览器再次解析一个字符串可能比给它一个 DOM 树要慢(这就是为什么人们会建议不只是粘贴字符串),但这不适用于这里,因为显而易见的原因。
-
尽管
''是一个字符串,但它是一种“用字符串操作DOM”的极其轻量级的方式。对于编码人员来说,它高效、定义明确且直观。我敢说这比在循环中删除孩子要快得多。 -
实际上这可能是个问题,因为 IE 将 innerHTML 关联为某些元素的只读属性,并且可能引发讨厌的“未知运行时错误”。所以你最好小心使用它。另见This answer
标签: javascript html dom dom-manipulation