使用数组选项更改下拉选项卡

时间:2017-11-11 02:01:02

标签: javascript arrays html5

我有多个下拉选项卡,我想通过使用数组来填充,我希望某些下拉选项卡能够更改其他下拉选项卡显示的内容。所以我使用if语句设置数组。但它似乎没有工作,我不确定它是否因为它我只是完成它,基本上无法编程,或者如果我在某处犯了一个愚蠢的错误。

这是我的代码

var ticketAmount_ = document.getElementById("ticketAmount");
var options = ["1", "2", "3", "4"];

for (var i = 0; i < options.length; i++) {
var opt = options [i];
var element = document.createElement("option");
element.textContent = opt;
element.value = opt;
ticketAmount_.appendChild(element);
;
}
var movieName = function() {
document.getElementById('movieName').options.length = 0;
if (document.getElementById("ticketAmount").value == 1) {
var movieSelection1 = document.getElementById("movieName");
var options = ["A", "B", "C", "D"];

for (var i = 0; i < options.length; i++) {
    var opt = options [i];
    var element = document.createElement("option");
    element.textContent = opt;
    element.value = opt;
    movieSelection1.appendChild(element);

}
}
else if
 (document.getElementById("ticketAmount").value == 2) {
var movieSelection2 = document.getElementById("movieName");
var options = ["E", "F", "G", "H"];

for (var i = 0; i < options.length; i++) {
    var opt = options [i];
    var element = document.createElement("option");
    element.textContent = opt;
    element.value = opt;
    movieSelection2.appendChild(element);
    ;
}
}
};

我将movieName函数设置为在window.onload上启动。

这实际上可以吗?

我是javascript的新手很抱歉,如果这不是一个很好的问题,由于某种原因,我的简单问题会被拒绝,但是嘿,我们都需要在某个地方学习。

1 个答案:

答案 0 :(得分:0)

您确定要在加载时运行吗?而不是响应第一次选择的变化?

我认为你是这样的:

false

然后为你的js:

<div>
  <select id='ticketAmount' onchange="movieName()"></select>
  <select id='movieName'></select>
</div>

请注意,我已使用&#39; options.length = 0&#39;清除了第二个选项中的选项。在添加它们之前。

你已经提到你是js的新手,所以我想我会提到一些你可以查找的其他概念来节省你自己的努力/代码:

  • 使用Switch语句而不是if / else
  • 不要重复自己(干)。无论使用if / else开关,您都应该能够:
    1. 清除选项
    2. 在您的交换机内确定一系列适当的选项
    3. 在开关之外/之后(或if / else)将元素添加到select(对于这两个选项重复的&#39; for&#39;循环)