如何仅使用选项值设置 select2 选项?

How to set select2 option using only option value?

我正在使用 select2 v4.0.1 select 盒子,它通过下面的函数成功更新了它的选项。

function updateList(){

$("#myselect").html("");

    var updateList = {

        operation:"updateList"

    }

    $.post("myphp.php", updateList).done(function(response) {

    var counter = 0;
    var arrayLength = response.length;

    while(counter<arrayLength){

    var record = response[counter];
    $("#myselect").append('<option value="'+ record.id + '">' + record.name + '</option>')
    $("#myselect").select2();
    ++counter;             
};   
});
};

但是,在这次更新之后,当我尝试设置 selected 选项时,下面的代码似乎只适用于选项值,但不适用于选项文本,因此我得到了 select里面没有文字的离子。

function editTableUpdate() {

    var editTableUpdate = {

        ID: $("#selectrecord").val(),
        operation: "editTableUpdate"
    }

    $.post("myphp.php", editTableUpdate).done(function(response) {
       if(response.val != 0){ 

           var record = response[0];
           $("#myselect").val(record.id).trigger("change")
    }
  });

}; 

编辑: $("#myselect").html("");从第二个函数中删除,我在裁剪必要的代码时错误地将它放在那里。我一直有问题。

编辑 2: 当鼠标悬停在不同的选项上时,这是 chrome 开发人员工具中高亮显示的地方。突出显示末尾的数字是数据库中的 id,我将其指定为选项值。

删除 editTableUpdate 函数中的 $("#myselect").html("");,这会清除所有选项。

function editTableUpdate() {

    var editTableUpdate = {

        ID: $("#selectrecord").val(),
        operation: "editTableUpdate"
    }

    $.post("myphp.php", editTableUpdate).done(function(response) {
       if(response.length!= 0) {     
           var record = response[0];
           $("#myselect").val(record.id).trigger("change");
       }
  });

}; 

感谢shi的建议,我解决了这个问题。我在不同的桥梁部分有 2 个语法错误导致故障,但它们被开发人员工具忽略了。代码按照我发布的方式运行良好。