JavaScript select下拉框change事件不生效 代码报错修复
代码错误修正
你的代码存在2个语法/逻辑错误,直接导致运行异常:
- 模板字符串使用错误:JS中支持
${变量}插值的模板字符串必须用**反引号()**包裹,你用了普通单引号,所以浏览器会把整段内容当普通字符串解析,直接输出字面量;同时插值部分event.target.value后缺失闭合的}`,属于语法错误,会被编辑器和浏览器识别为语法异常。 - 取值逻辑偏差:你当前代码取的是option的
value属性值(即1/2/3这类数字),如果要展示用户看到的口味名称文本,需要获取选中option的文本内容。
修正后可直接运行的完整代码:
<label>Elija un sabor de nieve: <select class="nieve" name="nieve"> <option value="">Seleccione Uno …</option> <option value="1">Chocolate</option> <option value="2">Sardina</option> <option value="3">Vainilla</option> </select> </label> <div class="resultado"></div> <script> const selectElement = document.querySelector('.nieve'); selectElement.addEventListener('change', (event) => { const resultado = document.querySelector('.resultado'); // 获取选中项的显示文本,若需要取value值可替换为 event.target.value const selectedFlavor = event.target.options[event.target.selectedIndex].textContent; // 注意此处使用反引号包裹字符串,插值结构完整闭合 resultado.textContent = `Te gusta el sabor ${selectedFlavor}`; }); </script>
补充:如果你需要输出的是选项绑定的value值而非显示的口味名,只需要把插值部分的
selectedFlavor替换为event.target.value即可,反引号和${}的完整结构不能改动。
内容的提问来源于stack exchange,提问作者Mari Carmen De Francisco
相关产品推荐
相关产品推荐

