javascript - 1 未定义,选择标签中的 optgroup
问题描述
所以我正在使用 select2,在我使用 optgroups 之前一切正常。当我将 id “drink” 放在 select 标记中时,该脚本工作正常,但当我将 id “drink” 放在 optgroup 标记中时,脚本就不行了。有谁知道这个问题,我不明白为什么它不起作用。
html:
<select class="drink" name="drink" style="width: 25%">
<optgroup label="Bieren" id="drink"></optgroup>
<optgroup label="Sterke Bieren"></optgroup>
</select>
<button type="button" onclick="collectInformation()" class="button-main">Submit</button>
<script>
//drinkData
var drinkData = [
["Cara Pils(4,4%)", 0.044],
["Corona Extra(4,6%)", 0.046],
["Cristal(5%)", 0.05],
["Jupiler(5,2%)", 0.052],
["Maes(5,2%)", 0.052],
["Stella Artois(5,2%)", 0.052],
["Strongbow(4,5%)", 0.045]
];
for (i = 0; i < drinkData.length; i++) {
document.getElementById("drink").innerHTML += "<option value='" + drinkData[i][0] + "'>" + drinkData[i][0] + "</option>";
}
js:
function collectInformation() {
//drink
var retu;
for (i = 0; i < drinkData.length; i++) {
if (drinkData[i][0] == document.getElementById("drink").value) {
retu = i;
}
}
var drink = drinkData[retu][1];
jQuery:
$(document).ready(function() {
$('.drink').select2();
});
我正在使用 select2(jQuery 插件),在我的选择选项中有一个搜索栏。我试图尽可能地过滤我的代码。我的脚本的 js 部分出现错误。它说 1 未定义。我检查了所有mmy id,似乎没有错?有没有人看到问题?
解决方案
您的问题在这一行:
document.getElementById("drink").value
将其更改为:
document.querySelector(".drink").value
或在 jQuery 中:
$(".drink").val()
饮料是一个类而不是一个ID。
var drinkData = [
["Cara Pils(4,4%)", 0.044],
["Corona Extra(4,6%)", 0.046],
["Cristal(5%)", 0.05],
["Jupiler(5,2%)", 0.052],
["Maes(5,2%)", 0.052],
["Stella Artois(5,2%)", 0.052],
["Strongbow(4,5%)", 0.045]
];
function collectInformation() {
//drink
var retu;
for (i = 0; i < drinkData.length; i++) {
if (drinkData[i][0] == document.querySelector(".drink").value) {
retu = i;
}
}
var drink = drinkData[retu][1];
console.log(drink);
}
$('.drink').select2();
for (i = 0; i < drinkData.length; i++) {
document.getElementById("drink").innerHTML += "<option value='" + drinkData[i][0] + "'>" + drinkData[i][0] + "</option>";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<select class="drink" name="drink" style="width: 25%">
<optgroup label="Bieren" id="drink"></optgroup>
<optgroup label="Sterke Bieren"></optgroup>
</select>
<button type="button" onclick="collectInformation()" class="button-main">Submit</button>
推荐阅读
- c# - 具有多个属性的数组映射
- swift - Swift 信号量行为
- sql - MS SQL 查询向另一个查询添加额外的 JOIN
- c# - 在 foreach 中访问 LINQ Select 中使用的值
- php - XAMPP 上没有安装 Xdebug
- php - Nginx / PHP-FPM 随机发布正文内容作为响应
- reactjs - Jest 和酶测试功能组件:返回 JSX 的方法
- css - 情感不会覆盖 Material UI 默认值
- reactjs - React - Material UI 测试 TypeError:无法读取未定义的属性“获取”
- amazon-web-services - 如何在不使用托管 UI 的情况下使用 Postman 使用 AWS cognito 注册新用户