最安全的动态添加下拉选项方法是 select.add(),支持IE9+及现代浏览器,能正确维护选中状态、事件绑定和插入顺序;避免使用 innerHTML +=,因其会清空状态并丢失事件。
select.add() 最安全,兼容 IE9+现代浏览器和旧版 IE 都支持 select.add() 方法,它能正确处理 DOM 插入顺序、选中状态和事件绑定,比直接拼接 HTML 字符串更可靠。
select.add(new Option("文本", "值")) 是最常用写法,自动创建 并插入末尾select.add(option, select.options[2]) 表示插在第 3 个选项前appendChild()(但当前基本无需考虑)innerHTML += 很危险,慎用看似简单,实际会清空整个下拉框的已选状态、移除所有绑定事件、重置 selectedIndex,且在某些浏览器中触发两次渲染。
select.innerHTML += "
" 也会重写全部 节点 有 onchange 或通过 addEventListener 绑定的监听器,全部丢失select 元素已存在常见错误是 JS 执行时机太早,DOM 还没加载完,导致 document.getElementById("mySelect") 返回 null。