javascript - 从数据列表中选择一个选项并将索引号与第二个数据列表中的另一个选项进行比较
问题描述
对不起,令人困惑的标题。我所拥有的是两个相邻的表格列,每个列都是 datalists 。一个是学校提供的课程名称列表,另一个是课程的相应目录号。
我想要发生的是学生可以选择课程标题,它会自动在下一列中显示目录号,或者他们可以选择目录号,它会在上一列中显示课程标题。
我目前如何设置此数据是 2 个单独的数组,如下所示:
<td>
<input list="courses" name="course" placeholder="Course" onchange="indexTest()">
<datalist id="courses">
<!--Filled in script-->
</datalist>
</td>
<td>
<input list="catalogs" name="catalog" placeholder="Catalog Number">
<datalist id="catalogs">
<!--Filled in script-->
</datalist>
</td>
<script>
var course = ["class 1","class 2","class 3","class 4","class 5"];
var list = document.getElementById('courses');
courseNames.forEach(function(item){
var option = document.createElement('option');
option.value = item;
list.appendChild(option);
});
</script>
<script>
var catalog = ["catalog 1", "catalog 2","catalog 3","catalog 4","catalog 5"];
var list = document.getElementById('catalogs');
catNumbers.forEach(function(item){
var option = document.createElement('option');
option.value = item;
list.appendChild(option);
});
</script>
我想可能我可以运行一个脚本,在一个数组中查找所选选项的索引号并从另一个数组中提取相同的索引号,但我似乎无法让它工作。
解决方案
如果两个数组在相同的索引中都有相应的值,您可以在每个下拉列表的 onchange 事件中执行此操作:
Safari 或 IE 版本 <= 9 不支持旁注数据列表,可能需要更改为选择元素:
<select id="courses" onchange="UpdateFromCourses()">
</select>
//Just make another function like this doing
//the same thing but to the other drop down
function UpdateFromCourses(){
const selIndex = document.getElementById('courses').selectedIndex;
document.getElementById('catalogs').selectedIndex = selIndex;
}
推荐阅读
- openshift - 如何将从 dockerhub/dockerio 导入的新 ImagestreamTag 添加到现有的 Imagestream?
- django - Django:将多个外键存储在模型的同一属性中
- javascript - 隐藏 ngx-datatable Ionic 中的列
- c - 如何让 microsoft c 编译器预先计算常量的标准数学函数
- apache-spark - 数据如何从 S3 存储桶传输到 Spark 工作人员
- vue.js - 如何根据给定值在组件中显示不同的下拉选项
- c - 为什么不明确#include .c 文件?
- javascript - 根据 d3.js 中的矩形大小调整文本字体大小
- java - 如何在 bazel 构建中调试 java_library 规则?
- angular - 来自其他模块的组件中的注入服务为空