首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从dynamic dropdown javascript (object)中获取值

如何从dynamic dropdown javascript (object)中获取值
EN

Stack Overflow用户
提问于 2018-09-30 01:45:21
回答 1查看 47关注 0票数 0

我已经创建了动态下拉列表,我想从选定的选项中获取值。Dynamic dropdown工作得很好,但我很难从选定的选项中取值。例如,我想从选定的对象tpPrototype中获取avgDamage的值。

我需要一些帮助

HTML:

代码语言:javascript
复制
<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:

代码语言: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]);
    }
};
EN

回答 1

Stack Overflow用户

发布于 2018-09-30 03:22:24

这看起来像是question 1085801的复制品

基本上,一旦拥有了selection对象,就可以通过以下方式访问"value“属性:

代码语言:javascript
复制
var selectedValue = selectionObject.options[index].value;

或者,您可以访问实际文本,如初始HTML中的"Tank Type“:

代码语言:javascript
复制
var selectedText = selectionObject.options[index].text;

一旦你有了它,你就应该能够使用这个值/文本来访问你的"tankObject“属性:

代码语言:javascript
复制
var selectedAvgDamage = tpPrototype[selectedText];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档