Я использую Select2 4.0. У меня есть список параметров, некоторые из которых "удалены", и я хочу указать, какие из них. Мой элемент select выглядит следующим образом:
<style>.deleted { color: red; }</style>
<select name="itemid" id="item-list" tabindex="1">
<option></option>
<option value="1">Item 1</option>
<option value="2" class="deleted">Item 2</option>
<option value="3">Item 3</option>
</select>
И он инициализируется следующим образом:
<script src="/static/js/select2.min.js"></script>
<script>
$(function() {
$("#item-list").select2({
placeholder: 'Select item'
});
});
</script>
Однако, в результирующем HTML-коде, который генерирует select2, я не вижу способа ссылаться на этот класс. Также попробовал атрибут data-deleted
в опции, без везения.
Единственное, что мне кажется близким, это templateResult
, где я могу проверить opt.element.className
. Но я не вижу, как получить доступ к опции select2 оттуда. В любом случае этот обратный вызов работает на каждом отдельном поиске, который совсем не то, что я хочу.
Есть ли другой способ создания конкретных опций в Select2?
UPDATE: как отмечено в комментариях, существует функция find()
, но она получает только исходные элементы <option>
, а не те элементы <li>
, которые select2 генерируют. Вот что я пробовал:
var sel2 = $("#item-list").select2({
placeholder: 'Select item'
});
sel2.find('.deleted').each(function() {
$(this).css('color', 'red');
});