javascript - 下拉表单 Javascript 创建一系列数字

标签 javascript html

我正在尝试使用 JavaScript 在下拉表单中创建一系列数字。

但是,看起来像

...并且它不显示任何选项,并且单击箭头不会弹出更多选项。我已经检查过我的路径是否正确。

我在 JSFiddle 试过了它可以工作,但当我将其放入 HTML 中时却不起作用。

我对为什么这不起作用感到疯狂。

index.html

<!DOCTYPE html>
<html lang="en">
<head>

    <link rel="stylesheet" href="../stylesheets/main.css">
    <script type="text/javascript" src="../assets/main.js"></script>

</head>

<body id="gradient">
    <div id="down" class="center">
        <p >Word Size</p>

        <select id="length">

        </select>          

    </div>
</body>

</html>

main.js

var select = document.getElementById('length');    

for (var i = 0; i<= 24; i++){

    var option = document.createElement('option');
    option.value = i;
    option.innerHTML = i;
    select.options.add(option);
}

最佳答案

问题在于,当解析并执行 main.js 脚本时,DOM 中还没有 id length 的元素。最简单的解决方案是将脚本移动到 body 标记的最末尾:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="../stylesheets/main.css">
</head>

<body id="gradient">
    <div id="down" class="center">
        <p >Word Size</p>
        <select id="length"></select>          
    </div>

    <script type="text/javascript" src="../assets/main.js"></script>
</body>

</html>

它在 jsFiddle 中工作的原因是因为它被配置为在 window.onload 事件(在右侧面板中,下拉菜单“onLoad”)上执行脚本部分。当然,你也可以这样做,例如在 main.js 中:

window.onload = function() { /* previous main.js code */};

在这种情况下,您不需要将脚本移动到任何地方。

关于javascript - 下拉表单 Javascript 创建一系列数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791268/

相关文章:

javascript - 字符串中存在的实现函数

javascript - 引号和双引号的条件正则表达式

javascript - 更新我的表格中的 bool 单元格

html - "navbar-button"折叠时未对齐(移动 View )

javascript - 当用户更改选项卡时通知用户保存更改

javascript - 根据是否包含某些元素来隐藏 div

javascript - 我应该总是将类属性放在 js 的构造函数中吗?

javascript - 是否可以删除新字符下输入文本字段的底部边框?

javascript - 如何在 CSS 中将颜色设置为用户的链接颜色?

javascript - 淡入和淡出间隔 Javascript