$(".searchinfo").each(function() {
var text = $(this).html();
text = text.replace(/[.]/g, "");
$(this).parent(".unselected").attr("class", "unselected"+" "+text);
});
$("input").change(function() {
var arr =[];
var arr2 =[];
$(".filter input").prop({disabled: true});
$("#content > *").show();
$("input:checkbox:checked").each(function(i) {
arr[i] = '.'+($(this).val());
});
for (var j=0; j<arr.length; j++) {
$("#content .unselected").not(""+arr[j]+"").hide();
}
$("#content .unselected:visible").each(function(i) {
arr2[i] = ($(this).attr('class'));
});
var str = arr2.join(' ');
str = str.replace(/(^|\s+)unselected(?=\s+|$)/g, '');
arr2 = str.split(" ");
for (var n=0; n<arr2.length; n++) {
$('input[value="'+arr2[n]+'"' ).prop({disabled: false});
}
});
Вот так будет работать с вашим кодом, только точки из value чекбоксов поубирайте.
можно сразу получить текст у searchinfo и не добавлять классы, только надо переписать строку которая скрывает блоки не содержащие класс, на строку которая будет скрывать родителя searchinfo .unselected, если текст searchinfo не содержит строку...