完全匹配选项和optgroup

时间:2013-03-26 02:00:22

标签: jquery drop-down-menu optgroup

当select-options变长时,我遇到了以下脚本的问题:

  

选项少http://jsfiddle.net/hsQjh/5/

的解决方案      

有问题的长选项:http://jsfiddle.net/hsQjh/6/

我的第一个选择框选项最多可达40多个选项,因此当我首先选择“ 2 ”选项时,第二个选择框也将达到40+以上的选项组框中,第二个框填充所有以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);
     });
}

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

演示:Fiddle