删除子节点(或元素)或设置innerHTML =""?

ref*_*med 4 javascript dom

清除选择框,表格或列表等HTML元素时,删除节点(例如select.options.remove(i),table.deleteRow(i))或者只清空innerHTML(例如select.innerHTML = "")更好/更快?或者重要吗?

一个示例案例是重新初始化表.特定选择字段的值应为后续HTML表加载不同的值.当选择值更改时,需要重新初始化表.

Chr*_*phe 5

在IE中,您无法设置select元素的innerHTML.因此,对于跨浏览器解决方案,唯一的方法是添加/删除子节点.


Hal*_*yon 3

我做了一个新的测试,没有被破坏。

http://jsperf.com/innerhtml-vs-removechild/67

它也不完美,因为示例设置的一部分是测试的一部分,因此这可能会扭曲结果。

这使得速度innerHTML更快,但我不知道快了多少。