使用JavaScript的HTML选定选项不起作用

使用JavaScript的HTML选定选项不起作用,javascript,html-select,Javascript,Html Select,以下代码(在formBuilder1.js文件中)给出了此错误: 未捕获的TypeError:无法读取null的属性“appendChild” 我能做些什么来解决这个问题 var medium = ["Luft","Wasser"]; var selectElement = document.getElementById('Medium'); for(var i=0;i<2;i++){ var opt = document.createElement('option');

以下代码(在formBuilder1.js文件中)给出了此错误:

未捕获的TypeError:无法读取null的属性“appendChild”

我能做些什么来解决这个问题

var medium = ["Luft","Wasser"];
var selectElement = document.getElementById('Medium');
for(var i=0;i<2;i++){
    var opt = document.createElement('option');
    opt.innerHTML = medium[i];
    opt.value = medium[i];
    selectElement.appendChild(opt);
var medium=[“Luft”,“Wasser”];
var selectElement=document.getElementById('Medium');

对于(var i=0;i您的代码在放入jsFiddle()时运行良好。正如在OP的注释中提到的,您需要在元素添加到DOM后包含JS

<!DOCTYPE html>
<html>
    <meta charset="utf-8">
<body>
    <select id="Medium"></select>
    <script src="formBuilder1.js"></script>
</body>
</html>


也可以考虑在WONDO.OnLoad函数中包装JavaScript以防止它在DOM就绪之前执行。

< p>当放入JSFDDLE()时,您的代码运行良好。如在您的OP注释中所提到的,在元素添加到DOM之后,您需要包括JS。

<!DOCTYPE html>
<html>
    <meta charset="utf-8">
<body>
    <select id="Medium"></select>
    <script src="formBuilder1.js"></script>
</body>
</html>


还考虑在Windows .OnLoad函数中包装JavaScript以防止它在DOM就绪之前执行。

问题是,在JavaScript试图找到的页面中不存在您试图找到的元素,带有<代码> ID=“媒体”< /代码>(因此您正在接收的错误消息)。。尝试将
块移动到关闭
标记之前,看看是否有效。如@DavidThomas所述,您在创建元素之前加载脚本,即在页眉的某个位置或在正文之前将其移动到页面的末尾。此外,如果您在单击按钮或其他操作时执行此操作,请确保元素(此处“medium”)在运行脚本之前退出。请将脚本放在元素
之后。问题是,在JavaScript试图查找元素时,页面中不存在使用
id=“medium”
试图查找的元素(因此会收到错误消息)。尝试将
块移动到关闭
标记之前,看看是否有效。如@DavidThomas所述,在创建元素之前加载脚本,即在页眉的某个位置或在正文之前将其移动到页面的末尾。此外,如果在单击按钮或其他操作时执行此操作,请确保元素(此处)“中”)在运行脚本之前退出。请将脚本放在元素后