Есть ли способ для плагина jQuery select2 сохранить класс каждого параметра выбора?

Я использую подключаемый модуль jQuery select2, и мне интересно, есть ли способ сохранить его (объединить) класс, который вы установили для каждого элемента option в исходном поле select, и вставить его как дополнительный класс в результирующий тег li?

Итак, в настоящее время они получают класс select2-results__option; то, что я хочу, было бы примерно так: select2-results__option myclass.

Можно ли это сделать?

Кроме того, он не обязательно должен быть классом, даже сохранение атрибута data тоже сработает.


person Brett    schedule 16.10.2016    source источник


Ответы (1)


Согласно документации для плагина select2, вы можете сделать это, переопределив функцию, которая создает результаты https://select2.github.io/examples.html#tags

function formatState (state) {
  if (!state.id) { return state.text; }
  var $state = $(
    '<span><img src="vendor/images/flags/' + state.element.value.toLowerCase() + '.png" class="img-flag" /> ' + state.text + '</span>'
  );
  return $state;
};



$(".js-example-templating").select2({
  templateResult: formatState
});
person Haitham Shaddad    schedule 19.10.2016
comment
Этот пример, который вы показали, позволяет мне редактировать данные внутри тега <li>, есть ли способ поместить/отредактировать сам тег <li>? - person Brett; 19.10.2016
comment
Почему вы хотите это сделать? - person Haitham Shaddad; 19.10.2016
comment
Потому что это самое чистое решение, и в настоящее время у меня есть другая настройка кода; на данный момент у меня есть псевдоэлемент в <li> на основе того, каким дочерним элементом они являются, однако теперь мне нужно изменить его, чтобы он основывался на классе, поэтому я хочу добавить класс к тому же тегу <li>, однако, если это не может быть сделано, я думаю, я пойду альтернативным путем. :) - person Brett; 19.10.2016
comment
Что ж, рад принять это, так как это работает достаточно хорошо, просто изменил мой код на использование псевдоэлемента в span. - person Brett; 19.10.2016