gpt4 book ai didi

Javascript 通过 id 从下拉列表中删除

转载 作者:行者123 更新时间:2023-12-03 09:23:29 25 4
gpt4 key购买 nike

我正在开发一个动态生成项目下拉列表的应用程序。生成的 ID 范围从“1”到用户输入的整数(0 保留用于硬编码“选择选项”)。如果用户改变主意并输入较小的值,我希望 javascript 动态删除选项。到目前为止,一切都适用于脚本,但我似乎无法使其工作。以下是我遇到困难的部分...顺便说一句,这是我构建实用程序中更有趣的部分之前的最后一部分。

var itemSelect = document.getElementById("itemSelector");
var optionCount = itemSelect.childElementCount;

for (i = optionCount-1, n = arrayTotal.length; i < n; i++)
{
var itemSelect = document.getElementById("itemSelector");
var option = document.createElement("option");
var optionCount = itemSelect.childElementCount;
if (optionCount - 1 > totalItems)
{
for (j = optionCount, o = totalItems; o < j; j--)
{
var trash = document.getElementById("itemSelector");
trash.removeChild(trash.childNodes[j]);
}
}
else if (optionCount <= totalItems)
{
option.innerHTML = "<option> Item number"+(arrayTotal[i])+"</option>";
option.value = arrayTotal[i];
option.id = i;
itemSelect.appendChild(option);
}
}

我构建了一些调试工具来检查某些值。 arrayTotal[] 正确地从其填充函数接收项目,并按预期动态调整大小。它始终与totalItems 具有相同的值。

optionCount 正确地使用用户输入的最大值填充下拉列表,但是如果用户输入较小的值,则应该删除额外选项的部分不会执行任何操作。我读过很多类似的问题并尝试了很多不同的方法,但我完全不知所措。我的实现方式有什么特别错误的地方吗?

此外,是否有一个明显的原因为什么不声明我在“for”循环外部和内部所做的两个变量会破坏一切?我对 javascript 还很陌生,但这看起来很奇怪。

http://jsfiddle.net/CAlbano/s4mzssm1/是一个工作 fiddle 的链接。我已经包含了整个脚本的所有工作原理。相关部分位于底部附近,这样您就可以看到它在做什么。在 canvas 元素上运行的三个输出是 arrayTotal[] 最后一个单元格的值、totalItems 的值和 optionCount-1 的值。我想要发生的是,如果 optionCount 变得大于totalItems,则从该列表中删除最后一个子项,直到 optionCount ==totalItems。

事实证明,我确实需要删除用于检测额外选项的逻辑 - 我只是不明白我被告知的内容,并且必须以艰难的方式学习。

最佳答案

循环条件是

...; i < n;...

其中 i = optionCount-1n = arrayTotal.length。当数组元素的数量较少时,您永远不会进入循环体(这是您的removeChild脚本的位置。

关于Javascript 通过 id 从下拉列表中删除 <option>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31768478/

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