gpt4 book ai didi

Javascript 范围(或其他)问题

转载 作者:行者123 更新时间:2023-11-30 08:15:16 25 4
gpt4 key购买 nike

我有这段 Javascript。我稍后在函数中需要变量 highest_number,我可以很好地生成它。问题是 highest_number 似乎在 for 循环结束后不可访问(例如在关闭 } 之后)。

function new_route(parts) {
var highest_number = -1;

alert(parts);
if (parts[0] == "field") {}
else if (parts[0] == "option") {
//find last option input id
var select_container = "container_" + parts[2];
var thisContainer = document.getElementById(select_container);
var optionsList = thisContainer.getElementsByTagName("input");

for (var i = 0; i < optionsList.length; i++) {
var option_parts = optionsList[i].getAttribute("id").split("_");

if (option_parts[0] == "option") {
alert(option_parts);
if (option_parts[2] > highest_number) {
highest_number = option_parts[2];
}
}
}
alert(highest_number);

var labelNode = document.createElement("label");
var inputNode = document.createElement("input");
}
}

为什么会这样?

最佳答案

您没有在问题中提供所有相关信息,所以我正在根据您前几天的问题进行研究。

至少部分问题与 getElementsByTagName('input') 有关,因为它包括没有 ID 的 submit 按钮。

所以当你到达:

var option_parts = optionsList[i].getAttribute("id").split("_");

您正在尝试对 null 执行 .split()

如果您排除循环中没有 ID 的元素,它将起作用:

    for (var i = 0; i < optionsList.length; i++) {
// if no ID, continue to the next item
if( !optionsList[i].id ) continue;
var option_parts = optionsList[i].getAttribute("id").split("_");

旁注。请在问题中包含相关信息。它节省了每个人的时间。

Here's a jsFiddle你的代码在行动。它是从我之前发布的 fiddle 更新的。如果您以后对此代码有任何疑问,您可能需要使用它。

关于Javascript 范围(或其他)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962735/

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