我正在为一个课堂项目工作,我有一个ID为“ idSelect”的下拉框。但是,当我尝试将下拉框的值获取到变量中时,它表示未定义idSelect
。
我尝试更改ID的名称,但是发生了同样的事情。如果我尝试console.log(idSelect.value)
,它会显示为我选择的内容,但仍然显示错误,指出idSelect
没有定义。
这是在头标签和脚本标签中
var selectedHero = idSelect.value;
这在正文标签中
Change your avatar:
<select id="idSelect">
<option>Batman</option>
<option>Spider-Man</option>
<option>Iron Man</option>
<option>Superman</option>
<option>Wolverine</option>
</select>
变量selectedHero
应该存储玩家在下拉框中选择的任何内容,例如“钢铁侠”或“超人”,但是在Inspect元素中,它只表示以下内容:
Monster Project (BLANK).html:22 Uncaught ReferenceError: idSelect is
not defined
at file:///C:/Users/chim%20chimoi/Desktop/Ifra/APCOMSCI/Monster_Project_HOME/Monster%20Project%20(BLANK).html:22:22
此操作之前有效,我没有进行任何更改,但是当我再次运行它时,此错误才开始弹出。
答案 0 :(得分:1)
您正在将HTML的ID传递给Javascript,而在Javascript中,没有声明此类变量idSelect,例如:
var idSelect;
但是,即使您使用Javascript进行声明,将HTML的值传递给Javascript的方法也不正确。
如果要保留相同的变量名,可以执行以下操作:
var idSelect = document.getElementById('idSelect').value;
答案 1 :(得分:0)
很可能存在一个变量“ idSelect”,该变量不存在,或者在您引用它时无法访问。
尝试将其设置为全局:
<script>
window.idSelect = document.getElementById('idSelect');
</script>
或在每次需要它时引用它:
<script>
var idSelect = document.getElementById('idSelect');
var selectedHero = idSelect.value;
</script>