gpt4 book ai didi

javascript - Javascript 中的 For 循环仅运行一次

转载 作者:行者123 更新时间:2023-11-28 01:53:14 26 4
gpt4 key购买 nike

这是我的代码。我不太明白为什么 for 循环只运行一次,无论是内部循环还是外部循环。当我生成警报消息时,nodeList.lengthinnerNodeList.length 显示适当的值。我发现 ij 的增量都没有超过 0。请指出代码中的任何问题。

function getCategoryElements() {
var newCategoryDiv = document.getElementById("category");
var nodeList = newCategoryDiv.childNodes;

for (var i = 0; i < nodeList.length; ++i) {
var innerNodeList = nodeList[i].childNodes;
alert("innerNodeList Length" + innerNodeList.length.toString());

for (var j = 0; j < innerNodeList.length; ++j) {
if (innerNodeList[j].nodeName == "SELECT") {
alert("inside select Node value " + innerNodeList[j].nodeValue.toString());
document.getElementById("newCategories").value =
document.getElementById("newCategories").value + '<%=delimiter%>' + innerNodeList[j].nodeValue;
} else if (innerNodeList[j].nodeName == "TEXTAREA") {
document.getElementById("newCategoriesData").value =
document.getElementById("newCategoriesData").value + '<%=delimiter%>' + innerNodeList[j].nodeValue;
}
}
}
}

最佳答案

var newCategoryDiv, nodeList, innerNodeList, innerNode, i, j;

newCategoryDiv = document.getElementById("category");
nodeList = newCategoryDiv.childNodes;

for (i = 0; i < nodeList.length; ++i) {
innerNodeList = nodeList[i].childNodes;
alert("innerNodeList Length" + innerNodeList.length.toString());

for (j = 0; j < innerNodeList.length; ++j) {
innerNode = innerNodeList[j];
if (innerNode.nodeName === "SELECT") {
alert("inside select Node value " + innerNode.nodeValue.toString());
document.getElementById("newCategories").value += '<%=delimiter%>' + innerNode.nodeValue;
} else if (innerNode.nodeName === "TEXTAREA") {
document.getElementById("newCategoriesData").value += '<%=delimiter%>' + innerNode.nodeValue;
}
// Will this work?
alert('Does this alert appear');
}
}

我冒昧地重构了您的代码并对其进行了一些清理。如果您不知道,所有变量在 Javascript 中都具有函数作用域,因此无论您在单个函数中的何处声明它们,Javascript 都会将它们视为变量声明是第一个语句。

看来您的代码在语法上是正确的,因此我认为查找问题最合乎逻辑的位置是在最后一个 alert 函数调用之后可能发生错误。

为了检查这一点,请尝试将另一个 alert 函数调用添加到内部循环的末尾。如果它没有运行,您就会知道是这种情况。

关于javascript - Javascript 中的 For 循环仅运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453955/

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