ID不存在,尽管存在

时间:2019-10-26 16:35:51

标签: javascript html

我正在为一个课堂项目工作,我有一个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

此操作之前有效,我没有进行任何更改,但是当我再次运行它时,此错误才开始弹出。

2 个答案:

答案 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>