当前位置: 首页 > 面试题库 >

使用jQuery根据第一个选择列表选项更改第二个选择列表

阎辰钊
2023-03-14
问题内容

我有两个选择:

<select name="select1" id="select1">
    <option value="1">Fruit</option>
    <option value="2">Animal</option>
    <option value="3">Bird</option>
    <option value="4">Car</option>
</select>

<select name="select2" id="select2">
    <option value="1">Banana</option>
    <option value="1">Apple</option>
    <option value="1">Orange</option>
    <option value="2">Wolf</option>
    <option value="2">Fox</option>
    <option value="2">Bear</option>
    <option value="3">Eagle</option>
    <option value="3">Hawk</option>
    <option value="4">BWM<option>
</select>

如果我首先选择“水果”,该如何使用jQuery?第二个选择仅向我显示水果-
香蕉,苹果,橙子。如果我在第一个选择中选择“鸟”,则第二个选择仅显示“鸟”-老鹰,鹰。等等…

我试图用这段jQuery代码来做到这一点:

$("#select1").change(function() {
    var id = $(this).val();
    $('#select2 option[value!='+id+']').remove();
});

不幸的是,它几乎删除了所有内容,而且我不知道如何恢复一些选择。我也阅读了一些有关克隆的内容,但是在这种情况下我不知道如何使用它。


问题答案:

$(“#select1”).change(function() {

  if ($(this).data('options') === undefined) {

    /*Taking an array of all options-2 and kind of embedding it on the select1*/

    $(this).data('options', $('#select2 option').clone());

  }

  var id = $(this).val();

  var options = $(this).data('options').filter('[value=' + id + ']');

  $('#select2').html(options);

});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<select name="select1" id="select1">

  <option value="1">Fruit</option>

  <option value="2">Animal</option>

  <option value="3">Bird</option>

  <option value="4">Car</option>

</select>





<select name="select2" id="select2">

  <option value="1">Banana</option>

  <option value="1">Apple</option>

  <option value="1">Orange</option>

  <option value="2">Wolf</option>

  <option value="2">Fox</option>

  <option value="2">Bear</option>

  <option value="3">Eagle</option>

  <option value="3">Hawk</option>

  <option value="4">BWM<option>

</select>

使用jQuery data()存储数据

我猜想隐藏元素在跨浏览器(2012)中不起作用,我自己没有对其进行测试。



 类似资料:
  • 问题内容: 我正在尝试使用jQuery / AJAX和PHP / MySQL创建一组动态的下拉框。当页面根据数据库中的值加载时,将填充第一个下拉框。第二个下拉框应根据第一个下拉框的选择显示一组值。我知道以前也有类似的问题问过,但是我没有找到适合我的情况的解决方案。 我的查询为第二个下拉列表生成了一个JSON编码的值列表,但该查询正在运行,但是在将其填充到实际的下拉表单元素时遇到了问题。关于我要去哪

  • 问题内容: 我对此一无所知。任何帮助对此将不胜感激! 对于经理和员工,我有两个下拉菜单。 “经理”下拉列表默认包含“经理”列表。 我想通过使用用户在Managers下拉列表中选择的Manager名称查询SQL Server数据库来用雇员名称填充雇员下拉列表。 因此,例如,如果某人在“经理”下拉列表中选择“汤姆”作为经理,则“员工”下拉列表应填充“员工”名称,其中经理=汤姆。 到目前为止,我有以下代

  • 根据第一个下拉列表项选择,我希望第二个下拉列表应该包含相关内容。在Java怎么能这样?例如,假设第一个下拉列表包含国家名称,第二个下拉列表包含国家名称。如果我从第一个下拉列表中选择一个特定的国家,比如“印度”,那么第二个列表应该只显示国家的相关邦,即“印度”的邦。并且这两个列表都是动态的。

  • 假设我有一个这样的列表: 我想要一个只包含嵌套列表的第一个元素的列表。我可以通过这样返回另一个列表来做到这一点 这个有捷径符号吗?

  • 问题内容: 我有一个选择元素,其中包含多个项目。我想更改其第一项的颜色,但似乎仅在单击选择下拉菜单时才会显示颜色。我想要的是在加载页面时更改颜色(例如灰色),以便用户可以看到第一个选项的颜色是不同的。 CSS: HTML: 问题答案: 那这个呢:

  • 我有这个,它绑定了一个变更事件。在其内部值的中,我想在另一个选择列表中选择一个特定的元素,即其中的一个特定选项。 然而它并不起作用。在主服务中有一些服务,如果选择了子服务,就不需要子服务,因此应该选择默认的。 null null