Показать сообщение отдельно
  #23 (permalink)  
Старый 23.05.2017, 22:38
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(".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 не содержит строку...
Ответить с цитированием