使用 jquery 向 select 标签添加值

Add values to select tag using jquery

我正在使用 select2 插件。我正在编写应用程序的基本 CRUD 操作。当我尝试使用未显示的 selected 值重新填充 select 标记时,我无法理解编辑中的一件事。我是这样做的

$.each(p["info"]["recievers_id"] , function(key , value){
    $.each(p["users"] , function(key , nextvalue){
        if (value["$id"] == nextvalue["_id"]["$id"]) {
            myData.push({
                id: nextvalue["_id"]["$id"], 
                text: nextvalue["firstname"]
            });
        }
    });
});

$("#messageTo").select2();
$("#messageTo").select2("data", myData, true); //Build my select
$("#messageTo").trigger('change'); //*1* update the values
//If *1* doesn't works use this lines of code:
//$("#messageTo").select2('destroy');
//$("#messageTo").select2();
//$("#messageTo").select2('data', myData, true );

使用 select2 插件的 select 标签

<div class="form-group">
              <select id="messageTo" class="form-control" data-plugin="select2" multiple="multiple"
              data-placeholder="To:">

              </select>
            </div>

我做错了什么吗?我试图显示用户在创建时select编辑的值

[Object]

0: Object

id: "569dece31dff7b8416004ae3"

text: "abc"

原型:对象

长度:1

原型:数组[0]

你可以试试这个方法:

var myData = []; //My array of objects to populate the select
$.each(p["info"]["recievers_id"] , function(key , value){
 $.each(p["users"] , function(key , nextvalue){
    if (value["$id"] == nextvalue["_id"]["$id"]) {
        myData.push({
            id: nextvalue["_id"]["$id"], 
            text: nextvalue["firstname"]
        }); //push elements one by one           
    }
 });
});

$("#messageTo").select2();
$("#messageTo").select2("data", myData, true); //Build my select2

工作fiddle(更新):https://jsfiddle.net/robertrozas/cnw0q70m/1/