所以,我循环遍历文档正文,搜索所有“#result> tbody> tr”对象。然后我尝试在这些元素中搜索以查看是否存在任何名称,如果存在,我想删除它们。如果我不遍历名称并使用单个对象,我就能使用它。如果我尝试遍历名称,它只循环四次,然后没有其他事情发生。
有什么想法吗?
编辑:目前第一个循环循环有30个对象。当我将第二个循环添加到混合中以查看子对象是否存在时,它将仅循环遍历四个而不是中断循环。希望能更好地解释。
示例:https://jsfiddle.net/8c9p7bp5/1/
var dlList = document.querySelectorAll("#result>tbody>tr");
for (var i = 0, len = dlList.length; i < len; i++) {
var names = ['Test', 'Router', 'IP', 'Mod'];
for (var j = 0, len = names.length; j < len; j++) {
var vi = dlList[i].querySelector("td>br>img[title^='" + names[i] + "']");
if(!dlList[i].contains(vi)) {
//dlList[i].remove();
console.log(dlList[i]);
}
}
}
答案 0 :(得分:0)
您的代码的第一个错误是您对嵌套循环使用了相同的限制&#34; len&#34;,在第一次迭代中,该值变为4,这就是为什么它会破坏父循环。
答案 1 :(得分:-1)
您初始化j
但从未在内循环中使用它。
请改为尝试:
var vi = dlList[i].querySelector("td>br>img[title^='" + names[j] + "']");
此外,您应该为内部循环使用与len
不同的变量,以避免遇到可变范围问题。