let element = document.getElementById(svg_id);
if(element.childNodes.length !==0){
var nodelist = element.childNodes;
for(var i = nodelist.length-1;i>=0;i--) {
element.removeChild(nodelist[i]);
}
}
想要使用JavaScript删除DOM节点的所有子元素,可以使用removeChild()或remove()方法删除所有子节点;另一个方法是设置DOM节点的innerHTML= " "属性,它是一个空字符串,生成相同的输出。
下面我们通过代码示例来看看如何实现。
示例1:使用removeChild()方法
removeChild()方法可以从父节点删除子节点。
Markup
<!DOCTYPE html><html><head> <meta charset="utf-8"></head>
<body>
<ul style="border: 2px dashed #D58C00;">
<li>Get Up in Morning</li>
<li>Do some exercise</li>
<li>Get Ready for school</li>
<li>Study Daily</li>
<li>Do homework</li>
</ul>
<input id="btn" type="button" value="删除子节点"> </body> <script>
function deleteChild() {
var e = document.querySelector("ul");
var child = e.lastElementChild;
while (child) {
e.removeChild(child);
child = e.lastElementChild;
}
}
var btn = document.getElementById("btn").onclick = function() {
deleteChild();
} </script>
</html>
示例2:使用remove()方法
remove() 方法移除被选元素,包括所有文本和子节点。该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素;但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。
Markup
<!DOCTYPE html><html><head> <meta charset="utf-8"></head>
<body>
<ul style="border: 2px dashed #006DAF;">
<li>Get Up in Morning</li>
<li>Do some exercise</li>
<li>Get Ready for school</li>
<li>Study Daily</li>
<li>Do homework</li>
</ul>
<input id="btn" type="button" value="删除子节点"> </body> <script>
function deleteChild() {
var e = document.querySelector("ul");
var first = e.firstElementChild;
while (first) {
first.remove();
first = e.firstElementChild;
}
}
var btn = document.getElementById("btn").onclick = function() {
deleteChild();
} </script>
</html>
示例3:使用 innerHTML =“”属性
Markup
<!DOCTYPE html><html> <head> <meta charset="utf-8"></head>
<body>
<ul style="border: 2px dashed #FE6368;">
<li>Get Up in Morning</li>
<li>Do some exercise</li>
<li>Get Ready for school</li>
<li>Study Daily</li>
<li>Do homework</li>
</ul>
<input id="btn" type="button" value="删除子节点"> </body> <script>
function deleteChild() {
var e = document.querySelector("ul");
e.innerHTML = "";
}
var btn = document.getElementById("btn").onclick = function() {
deleteChild();
}</script>
</html>