Войти с помощью github
Форум /

Хочу поинтересоваться на примере конкретной задачи. При потере фокуса у блока убирается модификатор. Нужно его оставить, если внутренний элемент блока не пустой. В документации я не нашёл методов для проверки на пустоту, а нашёл только вот это:

В контексте экземпляра блока и элемента с DOM-представлением зарезервировано поле this.domElem, содержащее jQuery-объект со ссылками на все DOM-узлы, с которыми связан данный экземпляр.

Благодаря этой информации я додумался сделать так (привожу часть кода):

modules.define('input', ['i-bem-dom'], function (provide, bemDom) {

   provide(bemDom.declBlock(this.name, {
       beforeSetMod: {
           'focus': {
               '': function () {
                   return !(this.domElem.find('.input__item').val());
               }
           }
       }}));
});

Оно работает. Но почему-то у меня такое ощущение, что это можно сделать более элегантно, не хардкодить имя элемента.

Пробовал искать через findChildElem(elem);, но с результатом поиска у меня не получалось делать ничего, кроме манипуляций модификаторами. Как тогда наиболее правильно производить всё то множество операций, которое доступно в jQuery?