Jquery - 基于组合框的过滤列表框

标签 jquery list combobox filter

我有两个列表,一个显示汽车公司,第二个显示所有汽车

这是第一个组合框(第一个选项是全部)

<select id="company">
     <option selected="true" >ALL</option>
    <option>GM</option>
    <option>Honda</option>
    <option>Ford</option>
</select>

这是我的第二个lisbox

<select id="names" multiple="multiple" size="8">
    <option>Chevy [GM]</option>
    <option>Buick [GM]</option>
    <option>Civic [Honda]</option>
    <option>Accord [Honda]</option>
    <option>Focus [Ford]</option>
</select>

根据第一个组合框选择,我应该仅在第二个列表中显示该汽车公司的汽车。甚至第二个列表也将汽车公司名称放在括号中。这是固定格式。再次从第一个列表中,如果用户选择“全部”,我应该显示所有车辆。

任何人都可以给我一个实现这个的想法或代码片段吗?

感谢您的帮助

问候

基兰

最佳答案

并非所有浏览器都允许您隐藏下拉列表中的各个项目,因此您需要保留一个主列表,然后根据该列表重新填充。

var names = $('#names option').clone();

$('#company').change(function() {
    var val = $(this).val();  
    $('#names').empty();
    names.filter(function(idx, el) {
        return val === 'ALL' || $(el).text().indexOf('[' + val + ']') >= 0;
    }).appendTo('#names');
});

工作演示位于 http://jsfiddle.net/alnitak/WsHvS/

关于Jquery - 基于组合框的过滤列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748532/

相关文章:

javascript - jquery ui 动态对话框

Python比较列表列表

java - 是否有 Java 的 Collections.synchronizedList 的 Kotlin 等价物?或者这在 Kotlin 中是不需要的

c# - 如何动态更改 C# 组合框或文本框中的自动完成条目?

c# - 当项目是一个类时,查找组合框项目的索引

jquery - 绑定(bind)值到星级

javascript - 将 jQuery 转换为 Vanilla javaScript 时出现滚动问题

jquery - 自动增长文本区域容器不根据文本区域大小调整大小

java - 如何使用流将顺序元素添加到列表中

c# - 检查组合框 : How to prevent a combobox from closing after a selection is clicked?