Javascript 在select2上重置所有选项,然后加载另一个数据集

Javascript 在select2上重置所有选项,然后加载另一个数据集,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我在使用JquerySelect2时遇到了一个问题。我想设置一个select2选项来更改另一个select2选择框 var categorySelect = $('#category_select'); var productSelect = $('#product_select'); categorySelect.select2(); productSelect.select2(); categorySelect.

我在使用
Jquery
Select2
时遇到了一个问题。我想设置一个select2选项来更改另一个select2选择框

        var categorySelect = $('#category_select');
        var productSelect = $('#product_select');
        categorySelect.select2();
        productSelect.select2();
        categorySelect.on('change',function () {
            var categoryId = $(this).val();
            var url = "{{url("/ajax/category/:category/products")}}";
            url = url.replace(":category",categoryId);
            $.get(url,function (res) {
                var res = [
                    {id: 900, text: 'AABB'},
                    {id: 800, text: 'WWBB'},
                ]; // dummy response
                productSelect.select2('data',res);
            })
        })

在这里,我按照他们的文档进行操作,但不明白为什么无法再次获取set数据。

我用自己的方式解决了这个问题。我在响应数据数组中循环,并创建产品选择框的选项

var categorySelect = $('#category_select');
var productSelect = $('#product_select');
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function () {
    var categoryId = $(this).val();
    var url = "{{url("/ajax/category/:category/products")}}";
    url = url.replace(":category",categoryId);
    $.get(url,function (res) {
        var res = [
            {id: 900, text: 'AABB'},
            {id: 800, text: 'WWBB'},
        ];
        if(res.length > 0) {
            productSelect.empty();
            res.forEach(function (prod) {
                var opt = $('<option>', {
                    'value' : prod.id
                }).text(prod.text);
                productSelect.append(opt);
            });
        }
    })
});
var categorySelect=$(“#category_select”);
var productSelect=$(“#product_select”);
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function(){
var categoryId=$(this.val();
var url=“{url(“/ajax/category/:category/products”)}”;
url=url.replace(“:category”,categoryId);
$.get(url,函数(res){
var res=[
{id:900,文本:'AABB'},
{id:800,文本:'WWBB'},
];
如果(分辨率长度>0){
productSelect.empty();
res.forEach(功能(产品){
变量opt=$(''{
“值”:prod.id
}).文本(prod.text);
productSelect.append(opt);
});
}
})
});
这可能会有帮助: