我需要使用css格式化选择框的内容。当然,这不能通过标准选择来完成,所以我试图实现Select2来实现它。
我的html的基本格式如下
<select>
<option>
<span class="a">first</span>
<span class="b">second</span>
</option>
<option>
<span class="a">first</span>
<span class="b">second</span>
</option>
</select>
不幸的是,select2剥离了选项中的html。
另外,我正在使用AngularJS来实际填充字段。这可能会有所不同。我尝试过使用UI-Select库,但它有太多的bug仍未解决。
答案 0 :(得分:2)
<option>
元素不允许有纯文本节点以外的任何子节点。
也就是说,Select2提供模板化选项,允许您在显示值之前包装或以其他方式更改值。我建议阅读文档:
以上是以上链接中的示例:
function format(state) {
if (!state.id) return state.text; // optgroup
return "<img class='flag' src='images/flags/" + state.id.toLowerCase() + ".png'/>" + state.text;
}
$("#e4").select2({
formatResult: format,
formatSelection: format,
escapeMarkup: function(m) { return m; }
});
这是一个有几个答案的问题,可帮助您将其集成到AngularJS应用中: