[英]Remove child nodes (or elements) or set innerHTML=“”?
清除HTML元素(如選擇框,表或列表)時,刪除節點(例如, select.options.remove(i)
, table.deleteRow(i)
)或僅清空innerHTML(例如, select.innerHTML = ""
)? 或者重要嗎?
一個示例案例是重新初始化表。 特定選擇字段的值應為后續HTML表加載不同的值。 當選擇值更改時,需要重新初始化表。
在IE中,您無法設置select元素的innerHTML 。 因此,對於跨瀏覽器解決方案,唯一的方法是添加/刪除子節點。
我做了一個沒有破壞的新測試。
http://jsperf.com/innerhtml-vs-removechild/67
它並不完美,因為部分樣本設置是測試的一部分,因此這可能會使結果產生偏差。
這給了innerHTML
更快,但我不知道多少。
根據這里的對話: 在JavaScript中清空節點的最佳方法是什么
似乎while (elm.firstChild) {elm.removeChild(elm.firstChild);}
方法在此測試中獲得了跨瀏覽器的最佳結果。
(本來可以把它作為評論而不是答案,但評論的速度很快,所以我不想讓它迷路。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.