gpt4 book ai didi

javascript - 为什么嵌套的 for 循环没有完成?

转载 作者:行者123 更新时间:2023-11-28 02:16:00 24 4
gpt4 key购买 nike

我有一个嵌套的 for 循环,它没有完成/退出它陷入了第二个循环:

for (var j = 0; next.className != "rfccs" && next !== null; j++)

只有当“next”为空时才会卡住。

我的代码:

var filtertypes = document.getElementsByClassName("rfccs"); // filtertypes is an array of all filter type headers
var next = null; // placeholder for the next sibling element
var tout = document.getElementById("testout"); //test
tout.innerHTML = "init "; //test

for (var i = 0; i < filtertypes.length; i++) {
filtertypes[i].className += " fhead" + i; // adds a unique class to every filter type header div
var filtertype = filtertypes[i]; // sets filtertype to the current filter type header
next = filtertype.nextElementSibling; // gets the next sibling

for (var j = 0; next.className != "rfccs" && next !== null; j++) { // adds the same class name to all filters in the same filter type
next.className += " ftype" + i;
next.innerHTML += i;
next = next.nextElementSibling;
tout.innerHTML += "i = " + i + "; j = " + j + "///";
if (next == null) {
tout.innerHTML += "DONE";
}
}
tout.innerHTML += "~~~~";
}

我知道我的跟踪/调试代码非常困惑。

这是Fiddle

最佳答案

var next = null;
next.className; // TypeError: Cannot read property 'className' of null

在检查 .className 之前先检查 null

next !== null && next.className !== "rfccs" // false if null

此外,由于任何 HTMLElement 通过逻辑运算符都是真实,因此您可以完全跳过 !== null

next && next.className !== "rfccs" // falsy if `next` falsy

关于javascript - 为什么嵌套的 for 循环没有完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com