我正在使用动态创建的 JavaScript 元素。所有元素都附加到同一个 div,但有时我需要清空 div 并添加新元素。
在之前的项目中,我使用了一种方法,将每个生成的元素添加ID到数组中,当我必须删除它们时,我运行以下算法:
for (var a = IDArray.length-1; a>=0; a--){
var element = document.getElementById(IDArray[a]);
element.parentNode.removeChild(element);
IDArray.splice(a,1);
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我开始思考:我正在附加 - 并从 div 中删除,它有一个innerHTML值。所以我可以使用下面的行来清空 div:
document.getElementById("parentDiv").innerHTML = "";
Run Code Online (Sandbox Code Playgroud)
我尝试了一下,他们都实现了同样的目标,至少看起来是这样。
我的问题是:使用innerHTML 方法是否会导致网站可用性出现问题?或者它只是一种更短、更有效的方法来实现同样的目标?
关于这一点有相当多的讨论。例如:在 JavaScript 中清空节点的最佳方法是什么?
最快的方法,尤其是对于深度嵌套的元素,似乎是:
while(element.firstChild){
element.removeChild(element.firstChild);
}
Run Code Online (Sandbox Code Playgroud)