从JSFiddle上的数组填充下拉列表但不在本地机器上工作?

时间:2017-04-05 07:54:34

标签: javascript html html-select appendchild

嘿大家我试图用数组填充下拉列表但是它不起作用但是当我在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);.

1 个答案:

答案 0 :(得分:1)

将您的JavaScript代码放在document.ready函数中,如下所示:

   times.OrderBy(x => x.Start);

   for (int i = 0; i < times.Count-1; i++)
   {
      times[i].Gap = times[i+1].Start - times[i].End;
   }

   times.OrderByDescending(x => x.Gap);

您的值未附加,因为在脚本执行后DOM已初始化。将代码放在document.ready函数中是一种很好的做法。

相关问题