【发布时间】:2017-12-12 05:00:55
【问题描述】:
尝试根据第一个选择元素的值从数组中填充第二个选择元素的选项。我似乎无法理解为什么它只填充第一个选择元素的数组中的项目。我知道 appendChild 导致项目继续满足需要,但我试图清除变量,但似乎创建的选项元素仍然存在。
任何帮助都会很棒,谢谢!
<select id="makeSelect" onChange="modelAppend()">
<option value="merc">Mercedes</option>
<option value="audi">Audi</option>
<option value="bmw">BMW</option>
</select>
<select id="modelSelect">
</select>
<script>
var audiModels = ["TT", "R8", "A4", "A6"]; //audimodels
var mercModels = ["C230", "B28", "LTX",]; //mercmodels
var bmwModels = ["328", "355", "458i",]; //bmwmodels
var selectedMake = document.getElementById("makeSelect"); //grabs the make select
var selectedModel = document.getElementById("modelSelect"); //grabs the model select
var appendedModel = window[selectedMake.value + "Models"]; // appends "Models" to selectedMake.value and converts string into variable
function modelAppend() {
for (var i = 0; i < appendedModel.length; i ++) { // counts items in model array
var models = appendedModel[i]; // // sets "models" to count of model array
var modelOptions = document.createElement("option"); //create the <option> tag
modelOptions.textContent = models; // assigns text to option
modelOptions.value = models; // assigns value to option
selectedModel.appendChild(modelOptions); //appeneds option tag with text and value to "modelSelect" element
}
}
</script>
【问题讨论】:
-
如何编辑您的问题并正确缩进您的代码?
-
这个变量 'appendedModel' 需要在函数内部刷新以获取新的 selectedMake 值
-
@ScottMarcus 如何提供适当的反馈并推荐介绍缩进最佳实践的文档?
-
@S.Morrison 这就是谷歌的目的。我的反馈绝对合适。如果您需要程序员的编程帮助,您有责任提出用基本标准编写的问题,以便您的问题易于阅读和理解。代码缩进实际上是“101”的东西。你问题的文字暗示你对编码有一定的了解,所以要求你这样做是完全合适的。
-
我知道你现在从哪里来,我知道为什么会这样。我认为这里的误解来自“您的问题文本暗示您对编码有一定的了解”以及我对提问前应遵循哪些准则的理解。
标签: javascript arrays select var