Передать функции определенный символ для использования в именах переменных?

0

Если вы добавите функцию в jQuery следующим образом:

     $.fn.boxLoader = function() {
            var FilterSelect = ($("[id^='filter_a_selector_']"));
            // do things to FilterSelect
            return this;
    });

И затем, когда произойдет определенное действие, я запустил эту функцию.

У меня есть несколько элементов с этими именами:

#filter_a_selector_1
#filter_b_selector_1
#filter_a_selector_2
#filter_b_selector_2

Поэтому я использую селектор ^, чтобы выбрать их все независимо от того, заканчивается ли 1 или 2, но как я могу подавать функцию "a" или "b" в зависимости от необходимости?

Я хочу иметь возможность запускать эту функцию на filter_b_selector_ тоже в некоторых ситуациях, не дублируя эту функцию и не называя ее чем-то новым +, только меняем filter_a_selector, чтобы иметь в ней "b".

В идеале это выглядело бы так:

 $.fn.boxLoader = function(filter_a_or_b) {
            var FilterSelect = ($("[id^='filter_{filter_a_or_b}_selector_']"));
            // do things to FilterSelect
            return this;
    });

Или похожие

  • 1
    Вы должны действительно научиться использовать классы ...
  • 0
    Я не могу использовать классы в этом случае, идентификатор / классы происходят от чего-то, что я не контролирую, и есть несколько элементов, которые отличаются и нуждаются в идентификаторе, чтобы быть нацеленным. Я упростил пример.
Теги:

1 ответ

2
Лучший ответ

jQuery принимает конкатенацию строк:

 $.fn.boxLoader = function(filter_a_or_b) {
        var FilterSelect = ($("[id^='filter_"+ filter_a_or_b + "_selector_']"));
        // do things to FilterSelect
        return this;
 });
  • 0
    Это не jQuery, который выполняет конкатенацию строк ...
  • 0
    @JanDvorak не сказал, что он работает, я сказал, что он принимает, и это означает, что вы можете объединить строку в экземпляре jQuery.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню