Javascript 当我将值返回到html时出现问题,1是否未定义?

Javascript 当我将值返回到html时出现问题,1是否未定义?,javascript,html,Javascript,Html,我得到一个没有定义1的错误,有人知道为什么吗?我似乎找不到我的错误。 错误是关于:document.getElementById(“return_data”).innerHTML=BeerData[retu][1] var BeerData=[ [“Jupiler”,5.2], [“Cristal”,5], [“Stella Artois”,5.2], [“GOUDEN CAROLUS经典”,8.5], [“GOUDEN CAROLUS TRIPEL”,9], [“GOUDEN CAROLUS

我得到一个没有定义1的错误,有人知道为什么吗?我似乎找不到我的错误。 错误是关于:
document.getElementById(“return_data”).innerHTML=BeerData[retu][1]

var BeerData=[
[“Jupiler”,5.2],
[“Cristal”,5],
[“Stella Artois”,5.2],
[“GOUDEN CAROLUS经典”,8.5],
[“GOUDEN CAROLUS TRIPEL”,9],
[“GOUDEN CAROLUS威士忌注入”,11.7],
[“杜维尔”,8.5],
[“杜维尔三脚跳”,9.5]
];
对于(i=0;i
Verzenden
韦尔克喝酒了?

这里有两个问题:

  • 通过比较
    if(BeerData[i][1]==document.getElementById(“drinkList”).value)
    ,您没有比较每个
    BeerData
    元素的正确元素。您已使用
    BeerData[i][0]
    中的
    值创建了每个
    选项
    ,但随后尝试将其与
    BeerData[i][1]
    进行比较
  • 通过相同的比较
    if(BeerData[i][1]==document.getElementById(“drinkList”).value)
    ,您还尝试获取ID
    drinkList
    元素的
    值,该值是
    数据列表
    元素,而不是希望获取其值的
    输入
    。相反,您应该将分配了
    饮料
    ID的元素的
    属性作为目标
  • var BeerData=[
    [“Jupiler”,5.2],
    [“Cristal”,5],
    [“Stella Artois”,5.2],
    [“GOUDEN CAROLUS经典”,8.5],
    [“GOUDEN CAROLUS TRIPEL”,9],
    [“GOUDEN CAROLUS威士忌注入”,11.7],
    [“杜维尔”,8.5],
    [“杜维尔三脚跳”,9.5]
    ];
    对于(i=0;i
    
    弗森登
    韦尔克喝酒了?
    


    您的目标是索引1,它是数字而不是下拉列表中的字符串;其次,您获取的是数据列表的id,它只是一个标签,无法返回所选值。但是,该值被设置为输入字段,因此您所要做的就是将输入字段id作为目标

     document.getElementById("drink").value
    
    工作代码:

    var BeerData=[
    [“Jupiler”,5.2],
    [“Cristal”,5],
    [“Stella Artois”,5.2],
    [“GOUDEN CAROLUS经典”,8.5],
    [“GOUDEN CAROLUS TRIPEL”,9],
    [“GOUDEN CAROLUS威士忌注入”,11.7],
    [“杜维尔”,8.5],
    [“杜维尔三脚跳”,9.5]
    ];
    对于(i=0;i
    
    弗森登
    韦尔克喝酒了?
    


    我还没有对它进行测试,但刚才我假设有两个问题:1。在循环的if条件下,您可能必须对照
    BeerData[i][0]
    2进行检查。如果未选择任何选项,
    retu
    将是
    未定义的
    ,除此之外,最好的做法是在找到匹配项后在循环中使用
    break
    语句(如果只能存在一个匹配项)