Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS脚本-依赖于值(多个下拉列表)_Javascript_Jquery_Html_Html Select - Fatal编程技术网

Javascript JS脚本-依赖于值(多个下拉列表)

Javascript JS脚本-依赖于值(多个下拉列表),javascript,jquery,html,html-select,Javascript,Jquery,Html,Html Select,现在我有两个下拉列表,目标是让用户在第一个选项上选择OFF,第二个下拉列表自动选择on,反之亦然 下面的代码和JavaScript一起工作,但只适用于一对下拉列表。我想知道我需要做些什么改变才能使它在未来适用于两对甚至四对 代码: 目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 const cmmicrophone=document.querySelectorAll'.select1'[0]; 常量麦克风=docume

现在我有两个下拉列表,目标是让用户在第一个选项上选择OFF,第二个下拉列表自动选择on,反之亦然

下面的代码和JavaScript一起工作,但只适用于一对下拉列表。我想知道我需要做些什么改变才能使它在未来适用于两对甚至四对

代码:

目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 const cmmicrophone=document.querySelectorAll'.select1'[0]; 常量麦克风=document.querySelectorAll'.select2'[0]; 函数inputHandlerthisSelect,otherSelect{ otherSelect.selectedIndex=此select.selectedIndex } CMMicrophone.addEventListener'change',事件=>{ inputHandlercmicrophone、麦克风; }; 麦克风.addEventListener'change',事件=>{ Inputhandler话筒、CMmicrophone; };
我建议使用document.getElementById而不是querySelectorAll。问题是您总是访问第一个元素0。您还需要确保每个“id”属性具有唯一的值;在上面的代码中,麦克风和CMMicrophone的值重复

您需要为动态选择数添加一个循环,方法是获取所有选择并对其进行迭代以映射每个事件处理程序:

const cmicrophones = document.querySelectorAll('.select1');
const microphones = document.querySelectorAll('.select2');
for (var i = 0; i < cmicrophones.length; i++) {
  const cmicrophone = cmicrophones[i];
  const microphone = microphones[i];

  ....
}
这是你的解决方案

目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 目前: 选择选项 关 在…上 麦克风: 选择选项 在…上 关 var cmicrophone=document.querySelectorAll'.select1'; var麦克风=document.querySelectorAll'.select2'; 函数inputhandlercmicrophone thissect,otherSelect,j{ var test=document.querySelectorAll'.select1';
fori=0;我在我的回答中提供了一个例子;你不明白什么部分?因此,如果id不同,那么说microphone1和cmmicrophone1,我将继续for循环….const cmmicrophone1=cmmicrophone1[I]在我提供的示例中,我没有使用ID。我建议使用ID,因为通过ID查找要比通过QuerySelector查找快得多。如果我错了,请告诉我。您在select1和Select2上调用select all,这将是变量。for循环是?我不明白。我不希望所有这些变量都链接在一起h、 请解释清楚你想要什么。我可以帮你。谢谢。现在你的代码影响两对下拉列表。我需要它们独立,因为我最终会有4对下拉列表。我不能让它们全部链接在一起。它们都应该有相同的功能,如果一个选择是,那么另一个选择否和vice versa,但不能像现在这样链接sirI会的。非常感谢。