Javascript 代码不会将选项放入选择框中

标签 javascript html

我已经编写了一些应该将选项放入选择框中的 javascript 代码。选择框的代码如下:

<select id="dayOfTheWeek" name="dayOfTheWeek"></select>

在我的 javascript 编码中,我有一个名为 populateDays 的方法,它应该用 7 个选项填充选择框 - 一个对应一周中的每一天。它的代码如下:

function populateDays() {
var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
var dayOfWeek = document.getElementById("dayOfTheWeek");
var today = (new Date()).getDay();

for (var i = 0; i < days.length; i++) {
    var length = dayOfWeek.options.length;
    dayOfWeek.add(new Option(days[i], i), length);
}
dayOfWeek.selectedIndex = today;
}

稍后在脚本中调用此方法。我知道浏览器在加载时会运行 javascript 代码,因为我在 populateDays 方法中放置了一个 alert() 语句,它会在我加载页面时出现。

populateDays();

由于某种原因,当我加载页面时,选择框完全是空的。为什么 populateDays() 方法不加载带有选项的选择框?

最佳答案

嗯,它应该可以工作 just fine .如果没有:

方法 2 ( jsFiddle example ) - innerHTML

function populateDays() {
  var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
  var dayOfWeek = document.getElementById("dayOfTheWeek");
  var today = (new Date()).getDay();
  var options = "";

  for (var i = 0; i < days.length; i++) {
    options += '<option value="' + days[i] + '">' + days[i] + '</option>'
  }

  dayOfWeek.innerHTML = options;
  dayOfWeek.selectedIndex = today;
}

方法 3 - 以编程方式创建元素

function populateDays() {
  var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
  var dayOfWeek = document.getElementById("dayOfTheWeek");
  var today = (new Date()).getDay();

  for (var i = 0; i < days.length; i++) {
    var option = document.createElement("option");
    option.value = days[i];
    var optionText = document.createTextNode(days[i]);
    option.appendChild(optionText);
    dayOfWeek.appendChild(option);
  }

  dayOfWeek.selectedIndex = today;
}

关于Javascript 代码不会将选项放入选择框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337335/

相关文章:

javascript - 使用js访问 meteor 模板的DOM

JavaScript——类型转换

html - 如何将图像放入 div wather 图像大小是最大然后是 div 或最小然后是 div

javascript - 如何根据同一页面上的文本/脚本更改 div 或表格的背景

css - Html <div> 元素背景图像不显示,div 内也没有任何内容

javascript - 现代javascript中的数组单子(monad)是什么?

javascript - 如何防止 Javascript 将“解析为”?

javascript - 通过 JavaScript 获取文本 block 的尺寸,而不是容器 `getBoundingClientRect` 的大小

javascript - 为用户添加 channel 权限

html - 避免在 textarea 文本上换行