javascript - 当我将我的值返回到 html 时出现问题,1 没有定义?
问题描述
我收到一个未定义 1 的错误,有人知道为什么吗?我似乎找不到我的错误。错误是关于:document.getElementById("return_data").innerHTML = BeerData[retu][1];
var BeerData = [
["Jupiler", 5.2],
["Cristal", 5],
["Stella Artois", 5.2],
["GOUDEN CAROLUS CLASSIC", 8.5],
["GOUDEN CAROLUS TRIPEL", 9],
["GOUDEN CAROLUS WHISKY INFUSED", 11.7],
["Duvel", 8.5],
["Duvel Tripel Hop", 9.5]
];
for (i = 0; i < BeerData.length; i++) {
document.getElementById("drinkList").innerHTML += "<option value='" + BeerData[i][0] + "'>" + BeerData[i][0] +"</option>";
}
function Button() {
var retu;
for (i = 0; i < BeerData.length; i++) {
if (BeerData[i][1] == document.getElementById("drinkList").value) {
retu = i;
}
}
//return BeerData[retu][1];
document.getElementById("return_data").innerHTML = BeerData[retu][1];
}
<button onclick="Button()"> Verzenden </button>
<!-- drink -->
<div class="form1">
<input type="text" name="drink" id="drink" list="drinkList" autocomplete="off" required>
<label for="drink" class="label-drink" >
<span class="content-drink">Welke Drank?</span>
</label>
<datalist id="drinkList">
</datalist>
</div>
<p id="return_data"></p>
解决方案
这里有两个问题:
- 通过比较
if (BeerData[i][1] == document.getElementById("drinkList").value)
,您不会比较每个元素的正确BeerData
元素。您已经option
使用value
from创建了每个BeerData[i][0]
,但随后尝试将其与之进行比较BeerData[i][1]
。 - 通过相同的比较
if (BeerData[i][1] == document.getElementById("drinkList").value)
,您还尝试value
使用 ID 获取元素的drinkList
,这是datalist
元素,而不是input
您希望获得的值。相反,您应该定位已分配IDvalue
的元素的属性。drink
var BeerData = [
["Jupiler", 5.2],
["Cristal", 5],
["Stella Artois", 5.2],
["GOUDEN CAROLUS CLASSIC", 8.5],
["GOUDEN CAROLUS TRIPEL", 9],
["GOUDEN CAROLUS WHISKY INFUSED", 11.7],
["Duvel", 8.5],
["Duvel Tripel Hop", 9.5]
];
for (i = 0; i < BeerData.length; i++) {
document.getElementById("drinkList").innerHTML += "<option value='" + BeerData[i][0] + "'>" + BeerData[i][0] + "</option>";
}
function Button() {
var retu;
for (i = 0; i < BeerData.length; i++) {
if (BeerData[i][0] == document.getElementById("drink").value) {
retu = i;
}
}
//return BeerData[retu][1];
document.getElementById("return_data").innerHTML = BeerData[retu][1];
}
<html>
<head>
</head>
<body>
<button onclick="Button()"> Verzenden </button>
<!-- drink -->
<div class="form1">
<input type="text" name="drink" id="drink" list="drinkList" autocomplete="off" required>
<label for="drink" class="label-drink">
<span class="content-drink">Welke Drank?</span>
</label>
<datalist id="drinkList">
</datalist>
</div>
<p id="return_data"></p>
</body>
推荐阅读
- c++ - 超过 10^10 限制时 pow 函数的精度损失?
- cron - 我的日程安排操作不起作用 Odoo 13 为什么?
- python - 如何在 Python 列表中正确插入项目并通过套接字发送?
- c# - SQLite 不支持此迁移操作 ('AlterColumnOperation')
- python-3.x - 加速 Pandas 迭代
- java - org.opentest4j.AssertionFailedError: 抛出意外的异常类型 ==> 预期
- tarantool - 如何以正确的方式创建分片队列管?
- c++ - 如何检查变量是否仍然有效或是否使用了 std::move?
- node.js - 节点。根据访问的 IP 服务提供不同的自签名证书
- c++ - 如何使用默认参数调用函数?