javascript - 如何删除select元素下的全部option选项?
怪我咯
怪我咯 2017-04-10 16:56:37
[JavaScript讨论组]
  1. 描述你的问题

使用for循环,利用removeChild或选择框的remove方法以及将选项设置为null都没办法完全删除所有选项。

  1. 贴上相关代码

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>
  1. 贴上报错信息

没有输出任何报错的信息,无论是for循环上三种代码中的哪一个都会导致select元素下始终有一个bmw的选项。

  1. 贴上相关截图

  1. 已经尝试过哪些方法仍然没解决(附上相关链接)

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
巴扎黑

试试这样了?

<script>
var selection = document.getElementById("cars");
selection.innerHTML = "";
</script>
巴扎黑

直接把它的innerHTML设置成空字符串不就好了?

大家讲道理

我擦原来是因为删除第一个选项以后其他选项自动移动一个位置所以循环里面options[i]应当改为options[0]。《JavaScript高级程序设计第二版》中第14章的14.3.3节for循环部分有错误。

不知我分析的是否正确?

ringa_lee
var selection = document.getElementById("cars");
selection.options.length=0;
怪我咯
var ops=city.getElementsByTagName("option");
            
            for(var i=ops.length;i>=0;i--){
                city.remove(0);
                
            }

这样就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号