我已经创建了动态下拉列表,我想从选定的选项中获取值。Dynamic dropdown工作得很好,但我很难从选定的选项中取值。例如,我想从选定的对象tpPrototype中获取avgDamage的值。
我需要一些帮助
HTML:
<form name="myform" id="myForm">
<p>tank 1</p>
<div class="select">
<select classname="optone" id="tankSel" size="1">
<option value="" selected="selected">Tank Nation</option>
</select>
</div>
<div class="select">
<select name="opttwo" id="typeSel" size="1">
<option value="" selected="selected">Tank Type</option>
</select>
</div>
<div class="select">
<select name="optthree" id="nameSel" size="1">
<option value="" selected="selected">Tank Name</option>
</select>
</div>
</form>
JavaScript:
const tpPrototype = {
name: "50TP prototyp",
avgDamage: 440,
healthPool: 1500,
reloadTime: 13.62,
},
tpMarkowskiego = {
name: "53TP prototyp",
avgDamage: 420,
healthPool: 1450,
reloadTime: 12.18,
},
proggettoM35 = {
name: "Progetto M35 mod.46",
avgDamage: 240,
healthPool: 1400,
reloadTime: 1,
},
window.onload = function () {
let tankSel = document.getElementById("tankSel");
typeSel = document.getElementById("typeSel");
nameSel = document.getElementById("nameSel");
for (let tank in tankObject) {
tankSel.options[tankSel.options.length] = new Option(tank, tank);
}
tankSel.onchange = function () {
typeSel.length = 1;
nameSel.length = 1;
if (this.selectedIndex < 1) return;
for (let type in tankObject[this.value]) {
typeSel.options[typeSel.options.length] = new Option(type, type);
}
};
tankSel.onchange();
typeSel.onchange = function () {
nameSel.length = 1;
if (this.selectedIndex < 1) return;
let names = tankObject[tankSel.value][this.value];
for (let i = 0; i < names.length; i++) {
nameSel.options[nameSel.options.length] = new Option(names[i], names[i]);
}
};
发布于 2018-09-30 03:22:24
这看起来像是question 1085801的复制品
基本上,一旦拥有了selection对象,就可以通过以下方式访问"value“属性:
var selectedValue = selectionObject.options[index].value;
或者,您可以访问实际文本,如初始HTML中的"Tank Type“:
var selectedText = selectionObject.options[index].text;
一旦你有了它,你就应该能够使用这个值/文本来访问你的"tankObject“属性:
var selectedAvgDamage = tpPrototype[selectedText];
https://stackoverflow.com/questions/52570979
复制相似问题