清除元素
重要性:5
创建一个函数 clear(elem)
,它可以从元素中删除所有内容。
<ol id="elem">
<li>Hello</li>
<li>World</li>
</ol>
<script>
function clear(elem) { /* your code */ }
clear(elem); // clears the list
</script>
首先,让我们看看不应该如何做
function clear(elem) {
for (let i=0; i < elem.childNodes.length; i++) {
elem.childNodes[i].remove();
}
}
这行不通,因为对 remove()
的调用会改变集合 elem.childNodes
,所以元素每次都从索引 0
开始。但 i
会增加,因此会跳过一些元素。
for..of
循环也会做同样的事情。
正确的变体可能是
function clear(elem) {
while (elem.firstChild) {
elem.firstChild.remove();
}
}
还有更简单的方法可以做到这一点
function clear(elem) {
elem.innerHTML = '';
}