从在 JSFiddle 上工作但不在本地机器上工作的数组填充下拉列表?
Populating dropdown list from array working on JSFiddle but not working on local machine?
大家好,我正在尝试用数组填充下拉列表,但它不起作用,但当我在 JSFiddle 上使用相同的代码时,它工作正常。请帮助
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1.9.1.js">
</script>
<script type="text/javascript">
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
</script>
</head>
<body>
<select id="selectNumber">
<option>Choose a number</option>
</select>
</body>
</html>
当我使用如下所示的警告框时
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
alert();
select.appendChild(el);
alert();
}
出现第一个警告框,但不出现第二个警告框,即只有第一次循环迭代是 运行,它在 select.appendChild(el);.
处终止
将您的 JavaScript 代码放入 document.ready 函数中,如下所示:
<script type="text/javascript">
$(document).ready(function() {
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
});
</script>
您的值没有附加,因为 DOM 是在脚本执行后初始化的。将代码放在 document.ready 函数中是一个好习惯。
大家好,我正在尝试用数组填充下拉列表,但它不起作用,但当我在 JSFiddle 上使用相同的代码时,它工作正常。请帮助
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1.9.1.js">
</script>
<script type="text/javascript">
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
</script>
</head>
<body>
<select id="selectNumber">
<option>Choose a number</option>
</select>
</body>
</html>
当我使用如下所示的警告框时
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
alert();
select.appendChild(el);
alert();
}
出现第一个警告框,但不出现第二个警告框,即只有第一次循环迭代是 运行,它在 select.appendChild(el);.
处终止将您的 JavaScript 代码放入 document.ready 函数中,如下所示:
<script type="text/javascript">
$(document).ready(function() {
var select = document.getElementById("selectNumber");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
});
</script>
您的值没有附加,因为 DOM 是在脚本执行后初始化的。将代码放在 document.ready 函数中是一个好习惯。