Javascript jquery-如何将数据追加到现有Select2中
经过对几个stackoverflow解决方案的研究,没有一个能帮助我解决这个问题 我有一个初始数据来填充select2的输入:Javascript jquery-如何将数据追加到现有Select2中,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,经过对几个stackoverflow解决方案的研究,没有一个能帮助我解决这个问题 我有一个初始数据来填充select2的输入: var select2_data = [{id:0, product_text:'text_1'},{id:1,product_text:'text_2'},{id:2, product_text:'text_3'}]; 然后,select2将在没有任何问题的情况下启动 var select2 = $('#select2_id').select2( { id:
var select2_data = [{id:0, product_text:'text_1'},{id:1,product_text:'text_2'},{id:2, product_text:'text_3'}];
然后,select2将在没有任何问题的情况下启动
var select2 = $('#select2_id').select2(
{
id: function(e) {return e.product_text; },
data:{results: select2_data, text:'product_text'},
width: '50%',
placeholder: 'Choose a product',
formatSelection: Product_Result,
formatResult: Product_Result
});
但我的问题是,我不知道如何将新数据附加到现有select2的输入中
新数据示例:
var new_data = {id:4, product_text: 'text_4'};
我做了一些实验,试图获取现有数据并将其添加到现有数据数组中,如下所示:
var select2_existing_data = $('#select2_id').select2('data');
select2_existing_data.append(new_data);
但是经过一些研究,这个select2\u现有数据变量适合只返回所选数据,而不是整个数据
希望你能帮我找到解决办法,
谢谢这难道不是简单地添加到原始数据数组吗
select2_data.push({ id: 4, product_text: 'text_4' });
不久前我做过类似的事情
//get the current data array (what is currently in the select 2)
var dataArray = $("#myselect2").select2('data');
//push your additional item
dataArray.push({ "Name": 'MyNewItem', "Id": 'MyNewItemId' });
//push new item with items that were already in the list
$("#myselect2").select2("data", dataArray);
没有测试。您可能需要检查select2(“数据”)中是否包含项。这是不可能的。它返回以下错误:未捕获类型错误:无法调用null的方法“append”不要使用“append”,使用“push”。然后在“select2_data”上调用它,这是一个绝对不为null的对象(除非你在别处偷偷地将其置为null)。哦,我得到了它…我的问题是我尝试使用另一个函数调用它,但你的解决方案会很快解决它。谢谢