JavaScript获取select选中值时.value与options[selectedIndex].value的区别
两种写法的核心差异
两种写法在你提供的标准单选下拉框场景下返回结果完全一致,核心区别体现在兼容性、实现逻辑和适用场景上:
- 写法1:
compType.value
这是HTML5标准为<select>元素新增的内置语法糖,浏览器底层会自动帮你读取当前选中项的value属性,代码更简洁易读。
适用限制:如果选项没有显式设置value属性,该写法会直接返回选中选项的展示文本;如果是开启了multiple属性的多选下拉框,该写法仅能返回第一个选中项的值。 - 写法2:
compType.options[compType.selectedIndex].value
这是兼容性更强的传统写法,支持所有新旧浏览器(包括低版本IE),本质是手动从下拉框的所有选项集合里,通过选中项的索引定位到对应选项,再读取它的value值。
优势是灵活性更高:你可以基于选中项的DOM对象做更多操作,比如要获取选项的展示文本只需把末尾的.value换成.text,也可以直接给选中项添加自定义属性、修改样式等;面对多选下拉框时,也可以通过遍历索引的方式拿到所有选中项的值。
额外建议
你当前代码里的compType和compTypeValue都没有加变量声明关键字(let/const/var),会默认挂载为全局变量,容易和其他全局变量冲突造成污染,建议补全变量声明。
内容的提问来源于stack exchange,提问作者junior_dev
相关产品推荐
相关产品推荐

