Jquery 替换select2选项?

Jquery 替换select2选项?,jquery,jquery-select2,Jquery,Jquery Select2,全部, 我有两个选择框: 水果精选 果量选择 根据水果中选择的选项,将影响水果数量的选项 因此,使用select2,我想简单地通过这样做来替换select中的所有选项 var options = []; $.each(pageData.products[selectedFruit].quantities, function (key, value) { options.push({ text: val

全部,

我有两个选择框:

水果精选 果量选择 根据水果中选择的选项,将影响水果数量的选项

因此,使用select2,我想简单地通过这样做来替换select中的所有选项

var options = [];
            $.each(pageData.products[selectedFruit].quantities, function (key, value) {
                options.push({
                    text: value.quantity,
                    id: value.quantity,

                })
            });
            console.log(options.length);
            $quantitySelect.select2( { data : options });
问题在于select2只是将新数据附加到已经存在的数据上。我希望它清除所有选项并添加新选项

否则,我的选择框将充满不正确的选项

我试着从这个问题开始

但这没什么作用,它不能清除它


帮助我,欧比万,你是我唯一的希望。

先清空列表,然后重新初始化它

$quantitySelect.empty().select2();
试试这个$quantitySelect.valnull.triggerchange;假设您已经初始化select2


参考-

假设您使用select2 4.0.0和以下类型的HTML:

<select id="fruits">
    <option value="apple" selected>Apples</option>
    <option value="pear">Pears</option>
</select>
<select id="quantities"></select>

您可以在本

中看到这一点,这对select2 4.0.0没有影响。请从jsfiddle.net创建小提琴。。。这将帮助很多人了解您使用的是什么版本的select2?3.5.x或4.0.0?如果您需要一个占位符,您需要添加一个空选项,类似于$quantities.empty.append.select2{data:options};先生,你救了我的命。太多了!!!
<select id="fruits">
    <option value="apple" selected>Apples</option>
    <option value="pear">Pears</option>
</select>
<select id="quantities"></select>
var initQuantitiesDropdown = function () {
    var options = [];
    var selectedFruit = $("#fruits").val();
    $.each(pageData.products[selectedFruit].quantities, function (key, value) {
        options.push({
            text: value,
            id: key
        });
    })
    $("#quantities").empty().select2({
        data: options
    });
};

$("#fruits").select2().change(initQuantitiesDropdown);
initQuantitiesDropdown();