【发布时间】:2017-10-24 21:55:42
【问题描述】:
我一直试图让一个数组填充下拉列表,我从这篇文章中得到了这个例子:JavaScript - populate drop down list with array
我正在使用这个 html:
<select id="selectNumber">
<option>Choose a number</option>
</select>
用这个js
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);
}
但它只有在我将 js 放在 HTML 文档中时才有效,如果我将它放在单独的文件中,它会在 Chrome 中给我这个错误:
>Uncaught TypeError: Cannot read property 'appendChild' of null at g.js:8
我也试过这个,但同样的事情发生了:
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.text = opt;
el.value = opt;
select.add(el);
}
该代码仅在我将其放在 HTML 文件中时才有效,但如果我将其放在单独的文件中,则会出现该错误。
知道为什么吗?
【问题讨论】:
-
将代码包装在DOMContentLoaded 中,并在 DOM 元素后引用 JS 文件
-
你用
jquery标记了这个,但似乎没有使用它?
标签: javascript jquery html drop-down-menu