当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);
});
}
感谢。
答案 0 :(得分:1)
使用基于正则表达式的过滤器
$('#filterSubActivity + div div label').each(function() { // Show matching options
$(this).toggle($.inArray($('input', this).val().match(/^\d+/)[0], ids) > -1);
});
演示:Fiddle