javascript - 为什么我的代码抛出 "Cannot read property ' ParentNode' of undefined”?

标签 javascript arrays loops svg

所以我想删除 iframe 的 SVG,这是我的代码:

 var parent = document.querySelectorAll("#main");
 var child = parent[0].childNodes;
 var lengthOfNodes = child.length;

 for (var j = 0; j < lengthOfNodes; j++) {
      child[j].parentNode.removeChild(child[j]);
    }

child 是我的 svg 元素的数组。

它有效,但有时这个算法会让我“无法读取未定义的属性'parentNode'”,我不知道为什么......我需要重新启动这个算法才能让它工作。

最佳答案

这样就很容易删除正在迭代的元素 并利用refrences

var parent = document.querySelectorAll("#main");
var child = parent[0].childNodes;
child.forEach(c => c.remove());

或者如果你想在将来某个地方打破循环,那么 ForEach 循环将无济于事

var parent = document.querySelectorAll("#main");
var child = parent[0].childNodes;
for(var c of child){
//can get out of loop anytime
c.remove();
}


关于javascript - 为什么我的代码抛出 "Cannot read property ' ParentNode' of undefined”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055077/

相关文章:

javascript - 通过 angular.js 中的作用域变量显示或附加元素

javascript - document.querySelectorAll() 函数不适用于所有元素

javascript - 从字符串数组中删除不包含 "IN"的所有元素

c++ - 如何检查空行?

javascript - 如何从另外两个变量在 javascript 中创建变量 - 使用 Chartnew.js 创建图表

c - 在添加字符数组之前先对其进行移位

javascript - 如何在嵌套数组中提取数组的属性

javascript - 如何获取这段代码中目标元素的索引?

c - Arduino:检测 while 循环内按下的按钮

r - 与 data.frame 中的交替行组进行比较时的计数频率