为了保持简短,我有一个选择菜单,在那里我不断地向选择下拉列表添加和删除元素。我看了How do I clear all options in a dropdown box?和Remove values from select list based on condition,但没有运气。我正在努力做这样的事情。
var select = document.getElementById('model-menu');
如果我这么做了...
select.options //returns an array [with a length of 24]
for (var i = 1; i <= select.options.length; i++) {
select.remove(i)
}
现在的问题是。。只删除了一半
select.length //12
真的很奇怪这就是它变得更奇怪的地方。如果我做了...
for (var i = 0; i < select.options.length; i++) {
console.log(i) //24 23 22 21....
}
它停在12。
我不是在寻找这个问题的确切解决方案,但这是我在过去几个小时里一直在处理的一些绝对的废话,如果有人能告诉我这个问题可能发生的地方,这将为我节省很多压力:)
2条答案
按热度按时间8i9zcol21#
你可以试试这样:
这就是为什么你的代码不能正常工作的原因:
看看当你从开始循环到N时会发生什么:
xu3bshqb2#
在我的例子中,我用一个反向循环解决了这个问题: