使用以下代码
$('select.my-select').select2().on('select2:opening', function (event) {
console.log(event, this);
});
记录的this
是'原始'<select>
DOM元素。但是如何获得replacement
/ representation
?我在谈论<ul>
与班级select2-results__options
。
我正在使用最新的select2 beta版本(目前是4.0.0 Beta 3)。 感谢
答案 0 :(得分:0)
如果我是对的,<li>s
中的<ul>
与原始<option>s
中的<select>
的顺序相同。
所以你可以选择<ul>
然后通过它的孩子并获得相应的''。
试试这个:
$('select.my-select').select2().on('select2:opening', function (event) {
var $select = $(this);
$('.select2-results__options > li').each(function(i) {
var option = $('option:nth-child('+i+')',$select);
console.log($(option).val());
});
});
Ps。:我现在无法测试它,但是如果你提供一个小提琴,它可以进行测试。
或者如果你想对结果进行样式化,试试这个(这个代码适用于select2 3.5.1,但我认为它也适用于4.0):
$('#myselect').select2({
data: categories,
allowClear: true,
formatResultCssClass: function(obj) {
if (obj.disabled) { return 'select2-item-cat-parent'; }
else { return 'select2-item-cat'; }
}
});