描述你的问题
使用for循环,利用removeChild或选择框的remove方法以及将选项设置为null都没办法完全删除所有选项。
贴上相关代码
DOM部分:
<select name="cars" id="cars">
<option class="benz" value="benz">benz</option>
<option class="bmw" value="bmw">bmw</option>
<option class="volvo" value="volvo">volvo</option>
</select>
js部分:
<script>
var selection = document.getElementById("cars");
for (var i = 0; i < selection.options.length; i++) {
// selection.removeChild(selection.options[i]);
// selection.remove(i);
// selection.options[i] = null;
};
</script>
贴上报错信息
没有输出任何报错的信息,无论是for循环上三种代码中的哪一个都会导致select元素下始终有一个bmw的选项。
贴上相关截图


已经尝试过哪些方法仍然没解决(附上相关链接)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
试试这样了?
直接把它的innerHTML设置成空字符串不就好了?
我擦原来是因为删除第一个选项以后其他选项自动移动一个位置所以循环里面options[i]应当改为options[0]。《JavaScript高级程序设计第二版》中第14章的14.3.3节for循环部分有错误。
不知我分析的是否正确?
这样就可以了