【发布时间】:2017-01-31 16:52:41
【问题描述】:
为了保持简短和简单,我有一个选择菜单,我不断地在选择下拉菜单中添加和删除元素。我看了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 点停止。
我不是在寻找这个问题的确切解决方案,但这是我过去几个小时一直在处理的一些绝对的废话,如果有人可以指导我找到这个问题可能发生的地方,它将为我节省一个压力很大:)
【问题讨论】:
-
您正在从您迭代的集合中删除,这是您的问题;)。
-
如果你想把它们全部删除。看看这个问题:How do I empty an array in JavaScript?
-
@xszaboj 相信我,我尝试将它设置为一个空数组,但没有成功。这可能是因为 select 是静态的......不是动态的。我现在要阅读 Nodelists
-
你试过
$(select.options).clear()吗?...而不是一一迭代?
标签: javascript html