var parent = document.getElementById('test-list');
parent.removeChild(parent.children[1]);
parent.removeChild(parent.children[2]);
parent.removeChild(parent.children[3]);
在上面很多答案中都存在一个问题,就是循环体内修改循环变量,这是大忌。
当需要连续删除时时会出错的。所以需要改变一下,固定循环变量,降序删除,既不会漏掉,也不会溢出:
var lis = document.querySelectorAll("#test-list li");
var index = lis.length-1;
for (;index >=0;index --) {
var li = lis[index];
if (["HTML", "CSS", "JAVASCRIPT"].indexOf(li.innerText.toUpperCase()) === -1) {
li.parentElement.removeChild(li);
}
}
sheyu小于
这是一个投机取巧的答案:
在上面很多答案中都存在一个问题,就是循环体内修改循环变量,这是大忌。
当需要连续删除时时会出错的。所以需要改变一下,固定循环变量,降序删除,既不会漏掉,也不会溢出: