select2 jQuery插件:如何获取<option>标签替换列表的引用?</option>

时间:2015-02-05 09:37:48

标签: javascript jquery select jquery-select2

使用以下代码

$('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)。 感谢

1 个答案:

答案 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'; }
    }
});