Discuss / JavaScript / 目前很靠谱的答案

目前很靠谱的答案

Topic source

sheyu小于

#1 Created at ... [Delete] [Delete and Lock User]

这是一个投机取巧的答案:

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);
  }
}

thks, 这个答案却是不错哈。。。学习了。


  • 1

Reply