将 select 中的选项更改为 JavaScript 而不丢失选择

Change options in select with JavaScript without loosing chosen

我正在尝试使用 JavaScript 和 JQuery 重新加载 select 的选项列表,但我需要保留之前选择的值。

这是我的代码:

    var temp = $('#SelectName').chosen().val();

    select = document.getElementById('SelectName');

    if (select.options.length > 0) {
        $('#SelectName').find('option').remove();
    }

    for (var i = 0; i < result.length; i++) {
        var option = document.createElement('option');
        option.value = result[i].myIdVariable;
        option.text = result[i].myTextVariable;
        select.appendChild(option); 
    }

    $('#SelectName').chosen(temp);

    $('#SelectName').trigger('chosen:updated');

使用这段代码,我放弃了所有选择的值。

我用这段代码解决了:

var temp = $('#SelectName').val();

select = document.getElementById('SelectName');

if (select.options.length > 0) {
    $('#SelectName').find('option').remove();
}

for (var i = 0; i < result.length; i++) {
    var option = document.createElement('option');
    option.value = result[i].myIdVariable;
    option.text = result[i].myTextVariable;
    select.appendChild(option); 
}

$('#SelectName').val(temp);

$('#SelectName').trigger('chosen:updated');

不同的是现在我用的是:

var temp = $('#SelectName').val();

$('#SelectName').val(temp);

之前:

var temp = $('#SelectName').chosen().val();

$('#SelectName').chosen(temp);