javascript - 基于第一个下拉菜单的第二个下拉选项

标签 javascript jquery html drop-down-menu

在网页上,如果您在第一个下拉列表中选择不同的选项,第二个下拉列表中将显示不同的选项。

<select id="independent">
  <option value="A"> A </option>
  <option value="B"> B </option>
</select>

<select id="dependent">
  <option value="A021">    A1 </option>
  <option value="A22019">  A2 </option>
  <option value="A3541">   A3 </option>
  <option value="B148">    B1 </option>
  <option value="B2">      B2 </option>
  <option value="B397415"> B3 </option>
</select>

这是我迄今为止拥有的 jQuery:

$(function() {

    $('#independent').on('change', function (e) {
        var endingChar = $(this).val().split('').pop();
        var selected = $( '#independent' ).val();
          $('#dependent option[value^='+selected+']').toggle(endingChar == selected);
        $('#dependent').val('');
    })

});

我在这里想做的是
1. 将变量 selected 设置为第一个下拉列表中所选选项的值
2. 使用该值查看所有第二个下拉列表的值的第一个字母,以填充我想在第二个下拉列表中看到的内容

但是,当我从第一个下拉列表中选择任何内容时,所有选项(A1 到 B3)都会出现在第二个下拉列表中。出了什么问题?

最佳答案

你可以这样尝试。

首先隐藏所有选项并使用toggleClass()仅显示匹配的选项

$(function() {

    $('#independent').on('change', function (e) {
    $('#dependent').val('');
        var endingChar = $(this).val().split('').pop();       
        var selected = $( '#independent' ).val();
          $('#dependent option').addClass('show');
 
          $('#dependent option[value^='+selected+']').toggleClass('show');
    })

});
.show{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="independent">
  <option value="A"> A </option>
  <option value="B"> B </option>
</select>

<select id="dependent">
  <option value="A021">    A1 </option>
  <option value="A22019">  A2 </option>
  <option value="A3541">   A3 </option>
  <option value="B148">    B1 </option>
  <option value="B2">      B2 </option>
  <option value="B397415"> B3 </option>
</select>

关于javascript - 基于第一个下拉菜单的第二个下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44712226/

相关文章:

javascript - 在用 jQuery 替换时可以忽略字符串中的 HTML 吗?

javascript - 设置 colorbox lightbox ajax href 变量

javascript - JQuery 在 IE 中不返回 div,但在 Firefox/Chrome/Safari 中却返回 div?

javascript - 从网站获取 href 属性的完整列表

html - 并非所有 CSS 样式类的属性都适用

javascript - jQuery解析JSON问题/按字母顺序对<option>进行排序

javascript - 如何使用 AngularJS 将标题作为第一个字符的联系人列表按字母顺序排列?

javascript - mySQL:如果文本列包含黑名单上的项目,则选择行

javascript - 如何在没有内联 JavaScript 处理程序的情况下将参数从动态表传递到事件处理程序

html - 如何在导航栏上当前正在查看的页面下方添加一行?