【发布时间】:2016-02-28 19:48:40
【问题描述】:
我正在使用 Select2 4.0。我有一个选项列表,其中一些已“删除”,我想指出哪些是哪些。我的选择元素是这样的:
<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>
但是,在 select2 生成的 HTML 代码中,我看不到任何引用该类的方法。还尝试了选项上的data-deleted 属性,但没有成功。
我看到的唯一接近的是templateResult 选项,我可以在其中检查opt.element.className。但我看不到如何从那里访问 select2 选项。无论如何,该回调在每次搜索时都会运行,这根本不是我想要的。
还有其他方法可以设置 Select2 中特定选项的样式吗?
更新:如 cmets 中所述,有一个 find() 函数,但它只获取原始的 <option> 元素,而不是 select2 生成的 <li> 元素。这是我尝试过的:
var sel2 = $("#item-list").select2({
placeholder: 'Select item'
});
sel2.find('.deleted').each(function() {
$(this).css('color', 'red');
});
【问题讨论】:
-
@isherwood 你是什么意思,什么数据?
-
HTML 是在服务器端生成的,因此该页面与我在问题中的代码完全相同。
-
在这种情况下,您似乎可以使用
find()获取属性:stackoverflow.com/questions/22261209/… -
我认为你可以使用
find()函数 -
那只获取原始元素,看我的更新。
标签: jquery html-select jquery-select2