两个HTML选择框相互链接

Yun*_*Han 4 html forms html-select

Hellloooooo ......我有两个<select>像这样的输入

<select id="sel1">
  <option value="a">a</option>
  <option value="b">b</option>
</select>

<select id="sel2">
  //if 'a' is selected above,
  //<option>apple</option>, <option>airplane</option>
  //if 'b' is selected above,
  //<option>banana</option>, <option>book</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想根据选择列出不同的选项集sel1.我可以使用onchange属性获取所选值,如下所示:

<select id="sel1" onchange="giveSelection(this)">
<script type="text/javascript">
  function giveSelection(sel) {
    var selected = sel.value;
  }
</script>
Run Code Online (Sandbox Code Playgroud)

但是我无法想出一种方法来使用这个值来输出不同的选择选项sel2.请帮忙!

Leo*_*Leo 15

你几乎到了那里.正如您已经获得sel1的价值,剩下的就是sel1根据价值过滤选项.

var sel1 = document.querySelector('#sel1');
var sel2 = document.querySelector('#sel2');
var options2 = sel2.querySelectorAll('option');

function giveSelection(selValue) {
  sel2.innerHTML = '';
  for(var i = 0; i < options2.length; i++) {
    if(options2[i].dataset.option === selValue) {
      sel2.appendChild(options2[i]);
    }
  }
}

giveSelection(sel1.value);
Run Code Online (Sandbox Code Playgroud)
<select id="sel1" onchange="giveSelection(this.value)">
  <option value="a">a</option>
  <option value="b">b</option>
</select>
<select id="sel2">
  <option data-option="a">apple</option>
  <option data-option="a">airplane</option>
  <option data-option="b">banana</option>
  <option data-option="b">book</option>
</select>
Run Code Online (Sandbox Code Playgroud)