Изменить класс блока при вводе в input jQuery

spro1

Гуру форума
Регистрация
26 Май 2013
Сообщения
226
Реакции
81
Всем доброго времени!

Нужно сделать так, чтобы при вводе в input у другого блока (нескольких блоков) добавлялся класс, при удалении из input, класс соответственно тоже удалять.

Решение нашел Для просмотра ссылки Войди или Зарегистрируйся

Но оно не работает, если блоки и input находятся не рядом.

Помогите пожалуйста.

Скрипт сейчас такой:
PHP:
    <script type="text/javascript">
        (function($){             
                const $input = $('#input-filter');
                 
                $input.each(inputOnKeypress);
                $input.on('keyup keypress', inputOnKeypress);

                function inputOnKeypress() {
                  const $thisInput = $(this);

                  $thisInput.closest('#accordion').toggleClass('nod', $thisInput.val().match(/[^\s]/) !== null);
                }                 
            });
        })(jQuery);
    </script>

Разметка такая:

PHP:
<input type="search" placeholder="search this table" id="input-filter" name="">

<div class="uslugi-table ">
        <div id="accordion" class="panel-group">
            <div class="c-spoiler">
                <div class="c-spoiler-heading">
                     123
                </div>
            </div>
        </div>
    </div>
 
зачем вам closest если вы обращаетесь к элементу по id?
замените
Код:
$thisInput.closest('#accordion')
на
Код:
$('#accordion')
и скобки у вас лишние
 
Назад
Сверху