私はSelect2 4.0を使用しています。私はオプションのリストを持っていますが、そのうちのいくつかは「削除」されています。私のselect要素は、このようなものです:<option>属性をselect2に渡すにはどうすればいいですか?
<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>
そして、それは次のように初期化されます:SELECT2私はそのクラスを参照する方法が表示されない生成結果のHTMLコードに、しかし
<script src="/static/js/select2.min.js"></script>
<script>
$(function() {
$("#item-list").select2({
placeholder: 'Select item'
});
});
</script>
。また、オプションでdata-deleted
属性を試しましたが、運がありません。
私が見る限り唯一のことはtemplateResult
オプションです。opt.element.className
を確認できます。しかし、そこからselect2オプションにアクセスする方法はわかりません。とにかくそのコールバックは、私が欲しいものではないすべての単一の検索で実行されます。
Select2の特定のオプションのスタイルを変更する方法はありますか?
更新:コメントに記載されているように、find()
関数がありますが、それは元の<option>
要素のみを取得し、<li>
要素は生成しません。ここに私が試したものです:
var sel2 = $("#item-list").select2({
placeholder: 'Select item'
});
sel2.find('.deleted').each(function() {
$(this).css('color', 'red');
});
@isherwoodどのようなデータですか? – DisgruntledGoat
HTMLはサーバー側で生成されるため、ページは質問内のコードとまったく同じです。 – DisgruntledGoat
その場合、 'find()'を使って属性を取得できるようです:http://stackoverflow.com/questions/22261209/get-custom-data-attribute-in-select2-with-select/22261210#22261210 – isherwood