javascript - innerHTML 和访问对象属性

标签 javascript html innerhtml

我想获取列表id的值。然后访问对象属性。 例如,如果选择鸡蛋: 我想要得到 Egg.cost(是 9)

但是,它显示为未定义。

HTML 部分:

<select id = "list">
<option value = "egg">Eggs</option>
<option value ="banana">Banana</option>
</select>

</select>
<button onclick ="getSelectValue()"></button>
<div id ="example">testing</div>

JavaScript:

function getSelectValue(){
    var selectedValue = document.getElementById("list").value;
    document.getElementById("example").innerHTML=selectedValue["cost"];
}

var banana = {
              cost:1.39,
              servings:6,
              servingSize:1,
              costPerServing:.23
              };

var egg = {
            cost:9,
            servings:24,
            servingSize:1,
            costPerServing:.38

          };

最佳答案

创建对象字典( items ),并使用 <select> 的值获取相关对象:

var list = document.getElementById("list");
var example = document.getElementById("example");
var items = {
  banana: {
    cost: 1.39,
    servings: 6,
    servingSize: 1,
    costPerServing: .23
  },

  egg: {
    cost: 9,
    servings: 24,
    servingSize: 1,
    costPerServing: .38

  }
};

function getSelectValue() {
  var selectedValue = list.value;
  example.innerHTML = items[selectedValue].cost;
}
<select id="list">
<option value = "egg">Eggs</option>
<option value ="banana">Banana</option>
</select>

<button onclick="getSelectValue()">Get cost</button>
<div id="example">testing</div>

关于javascript - innerHTML 和访问对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47146576/

相关文章:

javascript - 关于 jscript 中 for 循环中 innerHTML 的工作

javascript - 如何将下拉列表转换为常规列表?

javascript - 为什么正则表达式构造函数需要双重转义?

javascript - 我创建了一个 jquery 轮播,并使用 if 条件来运行和停止轮播

javascript - innerHTML 似乎是唯一好的解决方案

Javascript innerHTML/jQuery .html() 每个 id 只能工作一次?

javascript - 在Javascript中将多个变量分配给相同的值?

javascript - 悬停打开菜单并在光标移出时关闭

html - 保持 SVG 图像的笔划粗细

html - 错误 ITMS-9000 : "Invalid Image Path error when uploading ipa file