ここで私はselect要素といくつかのオプション要素を持っています。foreachループを実行してすべてのオプション要素を削除したいのですが、最初の2つの要素だけが削除されています。コード?選択タグからすべてのオプションを削除します
<!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>
私の推測では、 'options'更新が住んでいることである:2つの要素を除去した後、その長さは4-2 == 2となるので、ループはそこで停止します。 – melpomene
'' select_item.innerHTML = ""; ''を使用するか、またはこれを使用します:while(options.length)select_item.removeChild(options [0]); ' –