首页 > 解决方案 > 因为只得到奇数

问题描述

所以我有这段代码从选择(0-23)中删除选项,但它只删除0和奇数。剩下的选项是 2, 6 , 10, 14, 18, 22。目标是删除 for 代码中的所有选项:

var x = 0; 
var select = document.getElementById("hour");
var length = select.options.length;
for (x = 0; x < length; x++) {
    select.options[x] = null;
};

标签: javascript

解决方案


尝试循环反转

var select = document.getElementById("hour");
var length = select.options.length;
for (var x = length-1; x >= 0; x--) {
    select.options[x] = null;
};

您也可以使用remove方法而不是将其设置为空值

select.remove(x);

您的代码的问题是,当您删除第 0 个索引选项时,第一个索引出现在第 0 个索引处,导致下一次迭代删除第一个索引而不是当前索引。


推荐阅读