gpt4 book ai didi

javascript - 从 select 标签中删除所有选项

转载 作者:行者123 更新时间:2023-11-30 09:44:22 27 4
gpt4 key购买 nike

这里我有一个选择元素和几个选项元素。我想通过对它们运行 foreach 循环来删除所有选项元素。但只有前两个元素被删除。这段代码有什么问题?

<!DOCTYPE html>
<html>
<body>
<p id='item'></p>
<form>
remove all from fruit list:
<br>
<select id="mySelect" size="4" class='myclass' onChange='myFunction(this.className);'>
<option id='for_apple'>Apple</option>
<option>Pear</option>
<option>Banana</option>
<option>Orange</option>
</select>



<script>
let select_item = document.getElementById('mySelect');
let options=select_item.getElementsByTagName('option');
console.log('length is : '+options.length);
Array.prototype.forEach.call(options,(elem,index,arr) => {

console.log(options.length);
select_item.removeChild(elem);
});
</script>

</body>
</html>

最佳答案

节点列表是“实时的”,因此当您对它们进行迭代时,长度会发生变化并且循环会停止。

解决方案是向后迭代

let select_item = document.getElementById('mySelect');
let options = select_item.getElementsByTagName('option');

for (var i=options.length; i--;) {
select_item.removeChild(options[i]);
}

关于javascript - 从 select 标签中删除所有选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39546133/

27 4 0