Jquery 完全匹配选项和optgroup

Jquery 完全匹配选项和optgroup,jquery,drop-down-menu,optgroup,Jquery,Drop Down Menu,Optgroup,当选择选项变长时,以下脚本出现问题: 选择很少的解决方案 有问题的长选项: 我的第一个选择框选项最多有40多个选项,因此第二个选择框也最多有40多个optgroup,当我在第一个框上选择选项“2”时,第二个框将填充所有以2开头编号的optgroup,即optgroup“2”,“20”-“29”,同样的情况也发生在其他已选择的选项上 选项值和optgroup标签之间的“id”是否完全匹配 function filterActivity(e){ var ids = $('#filterAc

当选择选项变长时,以下脚本出现问题:

选择很少的解决方案

有问题的长选项:

我的第一个选择框选项最多有40多个选项,因此第二个选择框也最多有40多个optgroup,当我在第一个框上选择选项“2”时,第二个框将填充所有以2开头编号的optgroup,即optgroup“2”,“20”-“29”,同样的情况也发生在其他已选择的选项上

选项值和optgroup标签之间的“id”是否完全匹配

function filterActivity(e){
     var ids = $('#filterActivity + div input:checked').map(function(i) {
        return $(this).val().replace(/ .*/, '');
     }).get(); // Retrieve checked IDs

     $('#filterSubActivity + div div label').each(function() { // Show matching options
        $(this).toggle($.inArray($('input', this).val()[0], ids) > -1);
     });

     $('#filterSubActivity + div label.optGroup').each(function() { // Show matching groups
        $(this).toggle($(this).next().find('label:visible').length > 0);
     });
}

谢谢。

使用基于正则表达式的过滤器

$('#filterSubActivity + div div label').each(function() { // Show matching options
    $(this).toggle($.inArray($('input', this).val().match(/^\d+/)[0], ids) > -1);
});
演示: