选择mov_sel的Frozen II后无法移除time_sel索引2选项如何解决?
问题原因
- 你代码中获取的
x是mov_sel下拉框的DOM元素对象,不是当前选中的选项值,直接和字符串比较永远为false,所以删除逻辑不会触发。 - 如果需要实现切换其他影片时恢复被删除的选项,还要补充对应的恢复逻辑,避免切换后选项永久丢失。
修正后的代码
<script type="text/javascript"> // 存储原始的索引2选项,用于后续恢复 let removedOption = null; function getDropDown(){ var x = document.getElementById("mov_sel"); var y = document.getElementById("time_sel"); // 取当前选中的影片值 var selectedMov = x.value; if (selectedMov == "Frozen II") { // 未删除过才执行删除,避免重复删除误操作其他选项 if (!removedOption) { removedOption = y.options[2]; y.remove(2); } } else { // 切到其他影片时恢复被删除的选项 if (removedOption) { y.add(removedOption, 2); removedOption = null; } } } </script>
额外说明
- 下拉框的索引从0开始计数,你要删的第三个选项对应索引2的逻辑是正确的,只要修正取值判断的部分就能正常生效。
- 如果你不需要在切换到其他影片时恢复被删除的选项,直接删除存储原始选项和恢复的逻辑,只保留
x.value判断的部分即可。
内容的提问来源于stack exchange,提问作者Mabeey
相关产品推荐
相关产品推荐

