【发布时间】:2021-08-16 05:31:41
【问题描述】:
对于上下文,下面的函数将参数“rank”作为大写字母(例如:“A”)。 "#nodeField" 是一个 div。
当代码运行时,下面的代码将解释输入“rank”并将“h1”附加到“nodeField”。每个“h1”都有一个不同的 id,第一个字母是它的等级,第二个字母是它在等级中的位置(见第 19 和 21 行)。第 8 行的 for 循环应测试“nodeField”中是否存在下一个等级的“h1”(例如:如果输入等级为“A”,则测试是否存在任何等级为“B”的“h1”) .如果下一个等级的任何“h1”确实存在,nextNodeRank 应该等于 true(此变量影响第 17 行的 if 语句)。
有谁知道如何修复 for 循环以产生预期的输出?
var alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var aI = 0;
function addNode(rank) {
var kill = false;
var nextNodeRank = false;
for (i = 0; i < $("#nodeField>h1").length; i++) {
if ((kill = false)&&($("#" + alphabet[alphabet.indexOf(rank) + 1] + alphabet[i]).length !== 0)) {
kill = true;
nextNodeRank = true;
}
}
var newNode = document.createElement("h1");
newNode.innerHTML = 0;
if (nextNodeRank == true) {
aI = 0;
newNode.id = rank + alphabet[aI];
} else {
newNode.id = rank + alphabet[aI];
}
document.getElementById("nodeField").appendChild(newNode);
aI++;
}
【问题讨论】:
-
if((kill = false...,大概你的意思是== -
这个我试过了,不影响输出。
-
请提供更多示例代码,特别是一些 HTML。理想情况下,使用 HTML/JS sn-p 工具提供一个可运行的示例。
-
不幸的是,这不起作用,因为我在部分代码中使用了 JQuery。我无法将 JQuery 从我的文件链接到我的代码以导致堆栈溢出。
-
您可以包含 cdn 版本的 jquery tho @TBQTLS
标签: javascript jquery function for-loop if-statement