您使用的变量未定义,这会引发错误:
var elementvalue = mvalue[this.value.到String().到LowerCase()];
由于var elementvalue
也未使用,因此您可以注释该行或将其删除.此外,您try 克隆一个名为itemSelect
的select
元素,该元素在本示例代码中不存在.缺少以下行:
<select id="itemSelect" name="itemSelect"></select>
修复这两个错误,您的代码应按预期工作.
Working example:(我在第二个select
中添加了一个禁用的option
,以便您可以 Select 第一个option
"人口统计",并将第二个禁用的option
从" Select 模块"重命名为" Select 项目",以便您可以区分两者)
var moduly = [];
moduly['1'] = ["Inhabitants", "Married"];
moduly['2'] = ["German", "French", "English"];
moduly['3'] = ["Houses", "Estates"];
moduly['4'] = ["Surface area", "Meadow area"];
document.querySelec到r("select[name='modulSelect']").addEventListener("change", function() {
var element = moduly[this.value.到String().到LowerCase()];
//var elementvalue = mvalue[this.value.到String().到LowerCase()];
if (element) {
var select = document.querySelec到r("select[name='itemSelect']").cloneNode();
var node = document.createElement("option");
node.value = 0;
node.setAttribute("disabled", true);
node.setAttribute("selected", true);
node.textContent = "Choose item";
select.appendChild(node);
moduly[this.value.到String().到LowerCase()].forEach(function(element) {
var node = document.createElement("option");
node.value = element;
node.textContent = element;
select.appendChild(node);
});
document.querySelec到r("select[name='itemSelect']").parentElement.replaceChild(select, document.querySelec到r("select[name='itemSelect']"));
}
}, false);
<form>
<select id="modulSelect" name="modulSelect">
<option value="0" disabled selected>Choose module</option>
<option value="1">Demographics</option>
<option value="2">Nation</option>
<option value="3">Property</option>
<option value="4">Area</option>
</select>
<select id="itemSelect" name="itemSelect"></select>
</form>
如果需要不同的值/内容对,可以将moduly
数组嵌套得更深一步.更改数组,例如从:
moduly['3'] = ["Houses", "Estates"];
到
moduly['3'] = [["10", "Houses"], ["11", "Estates"]];
Then you just need 到 output the data with array notation:
node.value = element[0];
node.textContent = element[1];
var moduly = [];
moduly['1'] = [["5", "Inhabitants"], ["6", "Married"]];
moduly['2'] = [["7", "German"], ["8", "French"], ["9", "English"]];
moduly['3'] = [["10", "Houses"], ["11", "Estates"]];
moduly['4'] = [["12", "Surface area"], ["13", "Meadow area"]];
document.querySelec到r("select[name='modulSelect']").addEventListener("change", function() {
var element = moduly[this.value.到String().到LowerCase()];
//var elementvalue = mvalue[this.value.到String().到LowerCase()];
if (element) {
var select = document.querySelec到r("select[name='itemSelect']").cloneNode();
var node = document.createElement("option");
node.value = 0;
node.setAttribute("disabled", true);
node.setAttribute("selected", true);
node.textContent = "Choose item";
select.appendChild(node);
moduly[this.value.到String().到LowerCase()].forEach(function(element) {
var node = document.createElement("option");
node.value = element[0];
node.textContent = element[1];
select.appendChild(node);
});
document.querySelec到r("select[name='itemSelect']").parentElement.replaceChild(select, document.querySelec到r("select[name='itemSelect']"));
}
}, false);
<form>
<select id="modulSelect" name="modulSelect">
<option value="0" disabled selected>Choose module</option>
<option value="1">Demographics</option>
<option value="2">Nation</option>
<option value="3">Property</option>
<option value="4">Area</option>
</select>
<select id="itemSelect" name="itemSelect"></select>
</form>