Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我一直收到一个未捕获的错误TypeError:cannotreadproperty';选项';空的_Javascript_Html - Fatal编程技术网

Javascript 我一直收到一个未捕获的错误TypeError:cannotreadproperty';选项';空的

Javascript 我一直收到一个未捕获的错误TypeError:cannotreadproperty';选项';空的,javascript,html,Javascript,Html,我不确定我做错了什么。我试图在我的下拉框中显示第一列,但我一直在生成错误。有人能看出我做错了什么吗 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> </head> <script type="text/javascript"> var select = document.getE

我不确定我做错了什么。我试图在我的下拉框中显示第一列,但我一直在生成错误。有人能看出我做错了什么吗

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<script type="text/javascript">
var select = document.getElementById("complaintType");
var maps = new Array();
maps[0] = ["Text A1", "Text A2", "Text A3"];
maps[1] = ["Text B1", "Text B2", "Text B3"];
maps[2] = ["Text C1", "Text C2", "Text C3"];
maps[3] = ["Text D1", "Text D2", "Text D3"];
maps[4] = ["Text E1", "Text E2", "Text E3"];
maps[5] = ["Text F1", "Text F2", "Text F3"];
for(var i=0; i < maps.length; i++) {
    var value = maps[i][0];
    //document.write((value)+"<br>"); 
    var option = document.createElement('option');
    option.text = maps[i];
    option.value = maps[i];
    select.option[select.option.length] = option;  
}
</script>
<body>
<select id="complaintType">
</select>
</body>
</html>

无标题文件
var select=document.getElementById(“complaintType”);
var-maps=新数组();
映射[0]=[“文本A1”、“文本A2”、“文本A3”];
映射[1]=[“文本B1”、“文本B2”、“文本B3”];
映射[2]=[“文本C1”、“文本C2”、“文本C3”];
映射[3]=“文本D1”、“文本D2”、“文本D3”];
映射[4]=[“文本E1”、“文本E2”、“文本E3”];
映射[5]=[“文本F1”、“文本F2”、“文本F3”];
对于(var i=0;i”);
var option=document.createElement('option');
option.text=映射[i];
option.value=映射[i];
select.option[select.option.length]=option;
}

试试这种格式。问题是您在元素存在之前调用脚本

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<select id="complaintType">
</select>

<script type="text/javascript">
var select = document.getElementById("complaintType");
var maps = new Array();
maps[0] = ["Text A1", "Text A2", "Text A3"];
maps[1] = ["Text B1", "Text B2", "Text B3"];
maps[2] = ["Text C1", "Text C2", "Text C3"];
maps[3] = ["Text D1", "Text D2", "Text D3"];
maps[4] = ["Text E1", "Text E2", "Text E3"];
maps[5] = ["Text F1", "Text F2", "Text F3"];
for(var i=0; i < maps.length; i++) {
    var value = maps[i][0];
    //document.write((value)+"<br>"); 
    var option = document.createElement('option');
    option.text = maps[i];
    option.value = maps[i];
    select.option[select.option.length] = option;  
}
</script>
</body>
</html>

无标题文件
var select=document.getElementById(“complaintType”);
var-maps=新数组();
映射[0]=[“文本A1”、“文本A2”、“文本A3”];
映射[1]=[“文本B1”、“文本B2”、“文本B3”];
映射[2]=[“文本C1”、“文本C2”、“文本C3”];
映射[3]=“文本D1”、“文本D2”、“文本D3”];
映射[4]=[“文本E1”、“文本E2”、“文本E3”];
映射[5]=[“文本F1”、“文本F2”、“文本F3”];
对于(var i=0;i”);
var option=document.createElement('option');
option.text=映射[i];
option.value=映射[i];
select.option[select.option.length]=option;
}
或者,如果希望将脚本保持在顶部,并且使用jQuery,则可以将脚本插入其中:

$(文档).ready(函数(){
//在此处插入脚本
});

确保在DOM中存在目标元素之前不会触发

如果您不想使用jQuery,您可以使用以下工具执行类似操作(但在IE8或以下版本中不起作用):

document.addEventListener(“DOMContentLoaded”,函数(事件){
//在此处插入脚本

});

您有两个问题。首先,您正在执行的代码在目标元素存在之前运行。其次,使用appendChild()将选项添加到您的选择中:

var select = document.getElementById("complaintType");
var maps = new Array();
maps[0] = ["Text A1", "Text A2", "Text A3"];
maps[1] = ["Text B1", "Text B2", "Text B3"];
maps[2] = ["Text C1", "Text C2", "Text C3"];
maps[3] = ["Text D1", "Text D2", "Text D3"];
maps[4] = ["Text E1", "Text E2", "Text E3"];
maps[5] = ["Text F1", "Text F2", "Text F3"];
for (var i = 0; i < maps.length; i++) {
    var value = maps[i][0];
    //document.write((value)+"<br>"); 
    var option = document.createElement('option');
    option.text = maps[i];
    option.value = maps[i];
    select.appendChild(option);
}
var select=document.getElementById(“complaintType”);
var-maps=新数组();
映射[0]=[“文本A1”、“文本A2”、“文本A3”];
映射[1]=[“文本B1”、“文本B2”、“文本B3”];
映射[2]=[“文本C1”、“文本C2”、“文本C3”];
映射[3]=“文本D1”、“文本D2”、“文本D3”];
映射[4]=[“文本E1”、“文本E2”、“文本E3”];
映射[5]=[“文本F1”、“文本F2”、“文本F3”];
对于(var i=0;i”);
var option=document.createElement('option');
option.text=映射[i];
option.value=映射[i];
选择.appendChild(选项);
}

我以前尝试过,但它生成了无法获取属性“options”的值:对象为null或未定义,这是因为您在加载元素之前运行脚本。